Events Secure.com at Black Hat USA 2026

APT Flaw Let Attackers Swap Verified Linux Updates for Fakes

A critical APT vulnerability let attackers on the download path swap verified Debian and Ubuntu updates for fakes. Here's how to patch it.

Debian and Ubuntu Fix APT Flaw That Turned Updates Into Takeovers

Your Linux servers trust one program to check that every update is genuine. This week, we learned it could be talked into installing a fake. If your updates pass through a mirror or proxy you don’t fully control, keep reading.

At a Glance

  • Who should care: Anyone running Debian or Ubuntu servers, or building software on them.
  • What could go wrong: Someone who can tamper with the download path could take full control of a server during an ordinary update.
  • Do this: Install the fix with retries off, and move package sources to HTTPS where your mirror supports it.

What Happened?

On Wednesday, 4 November 2026, the developers of APT, the package manager on Debian and Ubuntu, published advisory APT-2026-11-01. They called CVE-2026-109518 a “critical file verification bypass.” Debian (DSA-6607-1) and Ubuntu (USN-8996-1) shipped fixes the same day.

The bug lives in APT’s hard link reuse and retry logic. An attacker on the download path, like a malicious mirror or proxy, mixes HTTP redirects with fake server errors. APT checks one file and installs another.

Linux · APT update path
The check passed. The file changed.

How an attacker sitting between your server and the download site could slip a fake package past APT’s signature check.

STEP 01
Update starts
APT fetches a package over plain HTTP through a mirror or proxy.
STEP 02
Signature check passes
APT checks a genuine file and marks it safe.
STEP 03
Redirect plus fake error
The attacker sends a redirect and a fake server error, so APT tries again.
STEP 04
The swap
Hard link reuse and the retry let a different file take its place.
STEP 05
Runs as root
The fake installs with full control of the server.

Two things break the chain: retries set to zero, or HTTPS on the download path. Both come from Ubuntu’s guidance of 4 November 2026.

How Bad Is It, and Who’s Exposed?

Severity and Exploitation

Ubuntu and the CVE record rate it 7.7 High on CVSS v4.0. There is no EPSS score yet as of 4 November 2026. No advisory reports attacks; CISA’s note of 4 November records exploitation as none.

Which Releases Are Exposed

Retries are on by default in Debian 12 and Ubuntu 22.04. Those releases, and everything newer, are exposed out of the box. Older releases are at risk only if someone enabled retries.

Fixed APT Versions

  • Debian 12: apt 2.6.2
  • Debian 13: apt 3.0.4
  • Ubuntu 22.04 LTS: apt 2.4.15ubuntu0.1
  • Ubuntu 24.04 LTS: apt 2.8.4ubuntu0.1
  • Ubuntu 26.04 LTS: apt 3.2.1ubuntu0.1
  • Ubuntu 26.10: apt 3.3.3ubuntu0.1
Debian & Ubuntu · Exposure check
Newer releases are exposed by default.

The attack needs APT to retry failed downloads. Retries are switched on out of the box from Debian 12 and Ubuntu 22.04 onward.

Debian
Debian 13
fixed in apt 3.0.4
Default
Debian 12
fixed in apt 2.6.2
Default
Debian 11
apt 2.2.5 from APT developers
If retries on
Ubuntu
Ubuntu 26.10
fixed in apt 3.3.3ubuntu0.1
Default
Ubuntu 26.04 LTS
fixed in apt 3.2.1ubuntu0.1
Default
Ubuntu 24.04 LTS
fixed in apt 2.8.4ubuntu0.1
Default
Ubuntu 22.04 LTS
fixed in apt 2.4.15ubuntu0.1
Default
Ubuntu 14.04 to 20.04
fixes via Ubuntu Pro
If retries on
Exposed by defaultExposed only if someone turned retries on

What’s the Impact?

Package installs run as root, the admin account that controls everything. So a swapped package means the attacker’s code runs with full control of the server. One poisoned mirror could reach every machine that trusts it, including build servers that ship your software.

Is There a Stopgap?

Reports split on this. Researchers says no advisory offers a workaround for systems that can’t update yet. Ubuntu’s blog offers two: switch sources to HTTPS, or set retries to zero. Ubuntu says either one blocks the attack. We follow Ubuntu.

Here’s the catch. The fix travels over the same path the attack uses. Build pipelines that share one proxy or mirror are where that path is most common (our reading).

How to Avoid This

  • Patch with retries off, as Ubuntu advises: sudo apt update && sudo apt upgrade -o Acquire::Retries=0
  • Move package sources to HTTPS where your mirror supports it, then run sudo apt update and check for errors.
  • List every proxy, cache, and mirror your servers and pipelines pull from.
  • Rebuild container images from a fixed base image. Old images keep the old APT.
Defense in layers · Update path
Protect the package. Protect the path.

One check is one bug away from zero checks. The update path needs a second layer that does not depend on the first.

Layer 1
Signature check
Proves the package came from Debian or Ubuntu. This week, it was the step that got bypassed.
Layer 2
HTTPS for package sources
Stops anyone on the network from rewriting the download. Long treated as optional, now the second layer.
Patch safely · Ubuntu’s command
sudo apt update && sudo apt upgrade -o Acquire::Retries=0

HTTPS does not replace the fix. Patch first, then keep both layers in place.

One Check Is One Bug Away From Nothing

The signature check was supposed to make the download path irrelevant. Sign the package, and who cares who carries it?

This bug shows why that thinking falls short. The step that checks an update can be bypassed. One check is one bug away from zero checks.

So protect the path as well as the package. HTTPS for package sources, long treated as optional in the Debian world, is now that second layer.

Frequently Asked Questions

What is CVE-2026-109518?
CVE-2026-109518 is a critical file verification bypass in APT, the package manager on Debian and Ubuntu. An attacker on the download path can make APT verify one file and install another. It is rated 7.7 High on CVSS v4.0.
Which Debian and Ubuntu versions are exposed?
APT retries failed downloads by default in Debian 12 and Ubuntu 22.04 and later, so those releases and newer are exposed out of the box. Older releases are at risk only if someone enabled retries.
How do I patch the APT vulnerability safely?
Ubuntu advises patching with retries switched off, so the update itself can’t be tampered with: sudo apt update && sudo apt upgrade -o Acquire::Retries=0. Then confirm you’re on the fixed APT version for your release.
Is the APT vulnerability being exploited?
No advisory reports attacks so far. CISA’s note of 4 November 2026 records no exploitation, and there is no EPSS score yet.
Does switching to HTTPS fix the APT flaw?
Ubuntu says HTTPS for package sources, or setting retries to zero, blocks the attack. Neither replaces the fix. Patch first, then keep HTTPS as a second layer.