Vulnerability
CVE-2026-109518: APT Flaw Can Turn Package Downloads Into Root RCE
An APT hard-link flaw can let on-path attackers run code as root on Debian and Ubuntu. Check affected versions, retry settings, fixes, and mitigation limits.
18 min read
A newly disclosed APT vulnerability can turn an ordinary package installation into attacker-controlled code execution as root—if an adversary can manipulate the download traffic and the client enters the vulnerable redirect-and-retry sequence.
Tracked as CVE-2026-109518, the issue affects APT on Debian, Ubuntu, and derivatives. Canonical assigns CVSS v4.0 7.7, High, while APT's maintainers describe the verification-bypass flaw as critical in their announcement; those labels come from different assessment contexts and should not be presented as identical ratings.

The danger is not a broken signing algorithm. Debian describes package contents being replaced after verification, when redirected downloads and unsafe handling of reused hard links undermine the connection between the bytes checked and the bytes installed. The corrective update changes how download targets are opened. Debian advisory
Publication status: This article reflects disclosures reviewed on November 4, 2026. Release-channel availability was changing during disclosure day; check the applicable distribution advisory and the package actually installed rather than treating a live database label as permanently authoritative.
The Essential Facts
The central risk is serious, but the prerequisites matter: this is not an attack against every Linux machine merely because it is connected to the internet.
| Item | Verified detail |
|---|---|
| Identifier | CVE-2026-109518. |
| Public disclosure | November 4, 2026. |
| Affected component | APT, including affected Debian, Ubuntu, and derivative builds. |
| Potential outcome | Installation of attacker-controlled content and code execution as root. |
| Attacker position | Ability to manipulate package-download HTTP traffic, including through a malicious mirror or proxy. |
| Required client behavior | Redirect following and package-download retries with nonzero Acquire::Retries. |
| Severity | CVSS v4.0 7.7 High; Ubuntu priority High. |
| Debian 12 fix | APT 2.6.2. |
| Debian 13 fix | APT 3.0.4. |
| Discovery credit | Max Justicz. |
Recommended priority: Treat affected systems as an urgent package-management remediation task, especially where package installation crosses untrusted networks or depends on intermediaries outside the organization's direct control. That recommendation follows from the root-level outcome; it is not a claim that exploitation has been observed on any particular network.
How The Attack Works
Canonical's description identifies an on-path adversary who can alter HTTP exchanges during package installation. The attacker needs control over relevant traffic or a participating endpoint—not necessarily an existing user account on the target machine.
Debian's advisory adds an important detail: two package downloads can become associated after HTTP redirects give them the same URI. When a download is resumed, improper file handling can allow an already-verified package to be replaced. APT's maintainer announcement connects the bypass to redirects, transient server errors, retries, and reused hard links. Debian advisory
At a high level, the disclosed sequence is:
- A vulnerable client begins a package-installation transaction.[1]
- An adversary manipulates the relevant HTTP responses, including redirects.
- Redirected downloads become associated with the same URI.Debian advisory
- Download errors cause retry or resume handling to run.
- Unsafe target-file handling permits package content to change after its earlier verification.Debian advisory
- Installation of the substituted content can produce root-level execution.
This is a conceptual explanation of the vendor disclosures, not a packet-level reproduction. The public descriptions reviewed do not establish a universal exploitation success rate, a complete request sequence, or a guaranteed result against every affected deployment.
The operational consequence is uncomfortable: an action intended to maintain system security can expose the package-management trust boundary when the downloader itself is vulnerable. That does not make installing updates the wrong response; it makes the transport, temporary precautions, and verified fixed package particularly important during remediation.
Why Hard Links Matter
A hard link is another filesystem name for the same underlying file, not an independent copy. Writes through either name affect the shared object, which is why apparently separate download paths can be dangerous if software treats them as independent content.
For this CVE, the relevant failure is hard-link reuse inside package-download handling. An attacker does not need the disclosure to establish direct shell access for manually creating links on the victim; the described route manipulates the client's own processing of network responses.
The record maps the issue to CWE-62, UNIX Hard Link, and CWE-367, Time-of-check Time-of-use Race Condition. The first concerns unintended effects of hard-linked targets; the second describes security decisions becoming invalid when a resource changes between checking and use.OpenCVE record CWE-62 explanation CWE-367 explanation
The important question is therefore not just whether a hash comparison succeeded at some point. It is whether the exact content that passed the check remains the content subsequently consumed by the privileged installer. This distinction explains why improving file-creation and ownership behavior can be central to repairing a verification bypass.
Why Signatures Were Insufficient
APT normally authenticates a repository through signed release metadata and a chain of checksums linking that metadata to package indexes and package contents. Its security model is not accurately described as independently verifying a publisher signature on every downloaded .deb file.
A successful verification decision is useful only if later processing preserves the verified object. Debian's account of replacement after verification describes a failure in that continuity, not evidence that the archive signing key was stolen or the cryptographic primitive was defeated. Debian advisory
For defenders, this is a reason to keep repository authentication enabled, not abandon it. Signature checking remains part of the intended protection; the update repairs how download handling preserves the result of that protection. Disabling verification would remove a defense while leaving the underlying vulnerable implementation unpatched.
Avoid describing the issue as a compromise of Debian's or Ubuntu's central archives. The disclosed adversary can operate at the traffic, mirror, or proxy layer, and the reviewed advisories do not establish a signing-infrastructure breach.
Who Is Actually Exposed?
The advisory identifies several conditions that must align: vulnerable APT code, a package-download transaction, adversarial control of relevant HTTP traffic, redirect following, and enabled retries. These conditions explain why package version alone identifies potentially affected software but does not completely describe a particular machine's exposure.
| Condition | What it means for assessment |
|---|---|
| Vulnerable APT build | Compare the installed distribution package with that branch's fixed version. |
| Nonzero retries | Acquire::Retries must enable retries for the disclosed path. |
| Redirect handling | Following redirects participates in the vulnerability sequence. |
| Package installation | The described root-execution outcome occurs when substituted content is installed. |
| Relevant traffic control | An attacker needs a position capable of manipulating the package exchange. |
Assessment recommendation: Keep two findings separate: “vulnerable code is installed” and “the currently documented attack prerequisites are present.” A temporary configuration that removes one prerequisite can reduce immediate exposure without changing the installed package's vulnerable status.
That separation also prevents false confidence. An apparently low-risk network path can change, a build script can override a configuration value, and a machine can later perform package operations from another environment. A durable remediation record should identify the fixed package rather than rely solely on a snapshot of surrounding conditions.
The Retry Setting Changes Everything
Acquire::Retries controls how many times APT retries failed file downloads. The APT configuration documentation says that a nonzero value enables those retries, and the CVE explicitly requires that condition.
Canonical states that the value is 3 by default starting with Debian 12 Bookworm and Ubuntu 22.04 LTS Jammy Jellyfish. The upstream announcement places the change in APT 2.3.2 and warns that user scripts may already have enabled retries on earlier releases.
These statements explain an otherwise confusing combination: an older APT branch can contain affected code while an older distribution's default configuration does not expose the documented route. “Not exposed by default” is not equivalent to “cannot be exposed after configuration changes.”
Review recommendation: Examine provisioning scripts, image build steps, CI jobs, configuration-management templates, and package-management wrappers. A familiar reliability option such as -o Acquire::Retries=3 can materially change the assessment, even if it was added long before this vulnerability became public.
Debian Fixed Versions
Debian's security update fixes Bookworm in 2.6.2 and Trixie in 3.0.4. Those are branch-specific fixes; a Debian 12 system does not need to jump to the newest development APT series merely to obtain this remediation.
| Debian branch | Disclosed fixed version | Verification source |
|---|---|---|
| Debian 12 Bookworm | 2.6.2 | DLA-4880-1. |
| Debian 13 Trixie | 3.0.4 | DSA-6607-1 and the security upload. |
| Upstream 3.3 series | 3.3.6 is the fixed threshold recorded in the CVE data | Distribution migration and availability must be checked separately.OpenCVE record |
The upstream announcement also lists fixed older stable branches. These are useful for identifying backport lines, but an upstream release existing does not prove that every unsupported distribution or paid support channel delivers that exact build to every machine.[2]
| APT branch | Upstream fixed release announced |
|---|---|
| 1.2 | 1.2.36. |
| 1.4 | 1.4.12. |
| 1.6 | 1.6.19. |
| 1.8.2 maintenance line | 1.8.2.4. |
| 2.0 | 2.0.12. |
| 2.2 | 2.2.5. |
| 2.4 | 2.4.15. |
| 2.6 | 2.6.2. |
| 2.8 | 2.8.4. |
| 3.0 | 3.0.4. |
| 3.2 | 3.2.1. |
A release-day tracker snapshot still showed 3.3.5 as vulnerable in testing and unstable, while a later direct retrieval showed unstable at fixed 3.3.6. This is a timing discrepancy, not a reason to promise that a fixed upstream version has already migrated into Debian testing.Debian tracker
One additional trap appears in the CVE ranges: the 1.8.3–1.8.5 interval is separately marked affected. Do not assume that every numerically higher 1.8 build is protected merely because the older 1.8.2 maintenance line has a 1.8.2.4 fix.OpenCVE record
Ubuntu Version Thresholds
The CVE data lists separate Ubuntu package-version thresholds, including Ubuntu-specific suffixes. Preserve those full version strings when recording remediation; an upstream-looking version alone is not a substitute for the distribution's package identity.OpenCVE record
| Ubuntu release | Fixed-version threshold in CVE data |
|---|---|
| 22.04 LTS | 2.4.15ubuntu0.1.OpenCVE record |
| 24.04 LTS | 2.8.4ubuntu0.1.OpenCVE record |
| 26.04 LTS | 3.2.1ubuntu0.1.OpenCVE record |
| 26.10 | 3.3.3ubuntu0.1.OpenCVE record |
The record also supplies thresholds for older Ubuntu lines, including Ubuntu Pro or ESM builds. Availability and entitlement need to be verified in the applicable supported channel rather than inferred from the mere presence of a version in a CVE table.OpenCVE record
| Older Ubuntu release | Recorded fixed-version threshold |
|---|---|
| 14.04 LTS | 1.0.1ubuntu2.24+esm4.OpenCVE record |
| 16.04 LTS | 1.2.36+esm1.OpenCVE record |
| 18.04 LTS | 1.6.19+esm1.OpenCVE record |
| 20.04 LTS | 2.0.12+esm1.OpenCVE record |
Rollout caveat: Ubuntu's CVE page still marked its tracked releases vulnerable when retrieved, despite the fixed thresholds in the CVE data. The referenced USN-8996-1 URL returned 404 during this review, while upstream said distribution updates were being released. These observations prevent a blanket claim that every Ubuntu channel was already fully updated. Referenced notice
Read The Version Table Carefully
OpenCVE displays defaultStatus: unaffected alongside explicit affected version ranges. That is the baseline used by the structured record; it does not cancel the affected ranges or mean that an installed package is protected without further comparison.OpenCVE record
The record also uses Debian package-version semantics. A vulnerability-management rule should retain the vendor, package, release branch, affected interval, and fixed threshold—not flatten all entries into one global statement such as “APT below 3.3.6 is vulnerable.”OpenCVE record
Implementation recommendation: Where a scanner disagrees with a distribution advisory, investigate whether the disagreement comes from a backport, an Ubuntu suffix, a stale feed, or an incorrect branch mapping. Store the advisory evidence with the remediation decision so that later automation does not repeatedly reopen a correctly resolved finding.
For derivatives, consult the derivative's security channel. Shared ancestry is a reason to investigate, not enough evidence to publish a complete product-impact list. The reviewed record refers broadly to derivatives without individually establishing every downstream distribution's fixed packages.
What The Patch Changes
Debian's accepted APT 3.0.4 security upload identifies the CVE repair in the download methods: target files are opened exclusively. That is a concrete implementation change, unlike a generic instruction to refresh package lists or rotate repository keys.
Technical interpretation: Exclusive target creation is consistent with preventing a downloader from silently reopening an existing file object that another download path relies on. The changelog supports the corrective direction, but it should not be stretched into unsupported claims about every syscall flag, lock lifetime, or complete internal state transition.
The same update bundles other out-of-bounds-access and reliability fixes. Those additional changes should not all be relabeled as root-code-execution instances of CVE-2026-109518; the maintainer announcement discusses their expected impacts separately.
For operations teams, this means an update may contain several related security and robustness improvements while still requiring a precise CVE-to-fix mapping. Record the package update as a whole, but keep the explanation of this vulnerability focused on the download-verification bypass.
Why The Score Is 7.7
Canonical's published base vector is CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N, with a score of 7.7 High.
| Metric | Meaning in this assessment |
|---|---|
| AV:N | The attack operates through network communication. |
| AC:L | Attack complexity is assessed as Low. |
| AT:P | Specific attack-enabling conditions are present; on-path access is an example in FIRST's guidance. |
| PR:N | No pre-existing attacker privileges on the target are required. |
| UI:P | User interaction is Passive, not None. |
| VC:H / VI:H / VA:H | High confidentiality, integrity, and availability impacts for the vulnerable system. |
A root-execution outcome does not automatically force every CVSS score to 10.0. The score also incorporates how the attack is reached and what conditions it requires; here, network position and the normal package workflow matter alongside the severity of the final outcome.
For editorial accuracy, call the numerical score High. It is also appropriate to report that the maintainers used “critical” descriptively, provided the article does not misrepresent that wording as a Critical CVSS base score.
Passive Does Not Mean Zero-Click
The published vector uses UI:P, not UI:N. FIRST defines Passive interaction as limited, involuntary interaction that does not require the victim to deliberately defeat a security mechanism.
That fits the disclosed concern that ordinary package installation generates traffic an on-path adversary can manipulate. It does not justify advertising this vulnerability as an unsolicited packet that compromises every idle Debian or Ubuntu machine.
Operational recommendation: Review unattended jobs and image-building workflows as well as interactive terminals. The advisory's installation precondition matters regardless of whether the relevant transaction is launched manually or by automation; an automated workflow should not be excluded from review simply because nobody is watching the terminal.
Conversely, do not invent a phishing requirement. The published description does not require a victim to approve an unsigned package, disclose a password, or intentionally switch to an attacker-controlled archive.
Check Your APT Installation
Begin with read-only checks. dpkg-query reports installed package versions, while apt-cache policy helps inspect package-selection information and available candidates.
cat /etc/os-release
dpkg-query -W -f='${binary:Package}\t${Version}\n' apt
apt-cache policy apt
Use the distribution release to choose the correct fixed-version row, then compare the full installed package string. An available fixed candidate is not evidence that the update has already been installed; the installed value and the candidate represent different operational states.
Next, inspect APT's visible retry setting and relevant configuration entries. apt-config supports configuration queries and dumps.
apt-config shell RETRIES Acquire::Retries
apt-config dump | grep -iE 'Acquire::Retries|AllowRedirect|Proxy'
Do not interpret missing output as a universal guarantee that retries are disabled. The CVE and maintainer announcement explicitly describe release-dependent defaults and script-supplied settings, so configuration-file output must be considered alongside the actual invocation.
For local review, the following searches can help locate file-based overrides and repository URIs. They are inventory aids rather than a complete exposure detector; protect their output because configuration can contain internal infrastructure details.
grep -Rns -- 'Acquire::Retries' /etc/apt 2>/dev/null
grep -RnsE '^[[:space:]]*(deb[[:space:]]|URIs:)' \
/etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null
Update Without Weakening Trust
Recommended approach: Use an approved repository and trusted network path, preserve repository verification, and apply the distribution's fixed APT packages. Avoid solving a package-retrieval error by disabling authentication or certificate checks.
Because the disclosed route requires enabled retries, setting Acquire::Retries=0 for a particular invocation removes a stated prerequisite for that invocation. This is a condition-based interim precaution, not a claim that the reviewed vendor advisories formally endorse it as a complete substitute for patching.
For an administrator who has reviewed the planned package changes, one possible update sequence is:
sudo apt-get -o Acquire::Retries=0 update && \
sudo apt-get -o Acquire::Retries=0 upgrade
The option is supplied to both commands so that each invocation uses the same explicit retry setting. This sequence requests the distribution's normal upgrade resolution; it does not bypass signatures, force a foreign APT branch, or prove remediation merely because the command completed.
Verification recommendation: Recheck the installed APT version and relevant distribution libraries after the update, compare with the advisory, and investigate held or otherwise unavailable packages. If the expected fixed package is not offered, check the approved security channel and support entitlement rather than installing an arbitrary upstream build into production.
Where a known adversary controls the current package route, use a separate trusted path or the organization's approved offline recovery procedure. A command-line precaution should not be treated as permission to ignore evidence of an already hostile update source.
What About HTTPS?
APT's HTTPS transport authenticates the server and encrypts the connection when certificate and hostname verification remain enabled. The transport documentation specifically warns that disabling peer verification removes the security HTTPS is intended to provide.
Defensive inference: Properly validated HTTPS can reduce the opportunity for an ordinary on-path actor to modify traffic in transit. That is meaningful hardening, but the reviewed CVE description does not establish “HTTPS configured” as an unconditional guarantee against every malicious endpoint, proxy arrangement, redirect path, or trust-configuration problem.
A malicious server can still control the responses it legitimately serves; encryption does not make an endpoint honest. Therefore, keep HTTPS and endpoint-trust controls as additional defenses while applying the APT fix rather than treating transport encryption as a replacement for repairing the downloader.
Do not disable Acquire::https::Verify-Peer or hostname validation to work around update errors. Doing so would remove protections precisely where this incident makes the integrity of package-download traffic especially important.
Temporary Controls Have Limits
Reducing retries to zero is useful because it addresses an explicitly documented requirement. Its limitation is scope: a per-command option does not alter another process's invocation, and a temporary policy does not replace vulnerable binaries.
Operational recommendation: If a temporary retry policy is deployed, document its owner, coverage, expiration, and removal criteria. Test its effect on ordinary update reliability, because failed downloads will no longer receive the same retry behavior.
Redirect restrictions are another possible configuration control, but an old workaround for a different APT vulnerability should not be copied into a new advisory as though it were vendor-validated remediation for this CVE. Prefer clearly labeled, prerequisite-based precautions and the distribution's released fix.
Avoid changing unrelated kernel hard-link settings as a presumed repair. The disclosed defect concerns APT's download handling, and the recorded security update changes the download methods themselves.
Enterprise Response Priorities
Recommended first step: Inventory every environment that performs package installation: production hosts, administrative workstations, CI runners, build containers, golden images, and provisioning systems. Rank them by vulnerable APT version, retry behavior, package source, and ability to reach a fixed vendor channel.
Recommended sequencing: Prioritize affected download workflows that traverse less-trusted intermediaries or produce widely deployed artifacts. A single image-build pipeline can deserve early attention because its output is reused, although that is a risk-management judgment rather than evidence that the disclosed flaw has compromised any particular build service.
For each asset or image, retain a small evidence set: distribution identity, installed APT version, observed retry settings, repository origin, fixed-version target, and the post-update package result. That makes the remediation defensible when scanners and vendor pages update at different speeds.
Do not close an image finding simply because the build host was patched. Rebuild affected base images where necessary and verify the package version inside the resulting artifact; host state and image contents are separate evidence points.
Finally, avoid adding unsupported detection promises. The reviewed disclosures provide a mechanism and fixed versions, not a universal network signature or a reliable single-log-line indicator of compromise.
If Exploitation Is Suspected
The potential root-level outcome justifies a serious incident response when there is credible evidence that package contents were substituted. A successful update afterward would repair the software flaw but would not, by itself, establish that the machine had never executed malicious code.
Investigation recommendation: Preserve package-management logs, cached package files where available, repository configuration, and relevant mirror or proxy records before cleanup changes the evidence. Correlate suspicious installation times with network observations rather than treating every normal redirect or retry as an attack.
File-checking tools can contribute to an investigation, but they cannot establish the trustworthiness of a machine after a plausible root compromise. Debian's debsums documentation explicitly describes its limited usefulness as a security tool.
Recovery recommendation: Where root compromise is substantiated or cannot be acceptably ruled out, follow the organization's incident-response process, including trusted rebuilds and credential review as appropriate. Keep containment and recovery decisions separate from the narrower question of whether the APT package is now fixed.
Disclosure And Remaining Unknowns
The upstream announcement credits Max Justicz with reporting the vulnerability, and the CVE data credits Julian Andres Klode as remediation developer. The record identifies Canonical as the assigning organization and November 4, 2026 as the publication date. OpenCVE record
The supplied OpenCVE snapshot displayed no KEV listing and no EPSS score. Those are snapshot observations, not a proof that exploitation has never occurred or a numerical estimate of zero exploit probability.OpenCVE record
The reviewed primary advisories do not describe a confirmed active campaign, a universal exploitation success rate, or an exhaustive list of affected derivatives. Claims about those subjects require additional evidence rather than extrapolation from the root-execution outcome.
Likewise, OpenCVE's empty remediation-enrichment field should not be read as “no fix exists.” Fixed releases are independently documented by the APT announcement, Debian's security upload, and Debian's LTS tracking.
Frequently Asked Questions
Can This Lead To Root?
Yes. The disclosed outcome is attacker-controlled package installation with root-level code execution, provided the documented traffic-control, redirect, retry, and vulnerable-client requirements are met.
Does It Require Local Access?
The published vector specifies no pre-existing attacker privileges. The attacker nevertheless needs control over relevant network traffic or a participating mirror or proxy; “no account required” does not mean “no prerequisites.”
Is Debian 11 Automatically Safe?
Older defaults do not enable the disclosed route in the same way, but scripts or configuration can turn retries on. The maintainer announcement lists a fixed 2.2.5 branch release and explicitly warns about earlier user-supplied retry settings.
Does apt update Alone Fix It?
No. Refreshing package lists is not the same as installing the fixed APT package. Confirm the installed version after the applicable upgrade rather than treating a successful metadata refresh as proof of remediation.
Is A Reboot The Main Remedy?
The published remedy is an APT package update, not a kernel fix. Follow any broader distribution restart guidance for other packages updated at the same time; a reboot without installing the fixed APT build does not meet this CVE's remediation requirement.
Is It Safe To Disable Verification?
No. Repository authentication remains an intended defense, and disabling HTTPS verification removes transport protection. Neither action repairs the target-file handling changed by the APT update.
Is Every Linux Distribution Affected?
The record concerns affected APT builds on Debian, Ubuntu, and derivatives. It does not establish the same vulnerability in unrelated package managers or justify describing every Linux distribution as affected.
What Proves Remediation?
The strongest operational evidence is the applicable vendor-fixed package installed from an approved channel, with its full version matched to the correct release branch. A prospective candidate, an empty enrichment panel, and a temporary retry override are not equivalent forms of proof.