Vulnerabilities

Vulnerability · CVE-2026-115906

zip: AES Entry HMAC Authentication Bypass on Premature EOF

Published Oct 26, 2026 · catalog updated Oct 31, 2026 · zip: AES Entry HMAC

Last checked Nov 8, 2026. A connected source was read within the last 7 days.

Check if you run it

No confirmed exploitation is on record for CVE-2026-115906. EPSS is 0.15%. Act only if a listed version of zip: AES Entry HMAC is installed.

Gaps on this record

  • The stored product name is a package slug. The name on this page is taken from the title (zip: AES Entry HMAC).
  • No vendor fix or required action is stored. Compare the linked advisory before you change production.
Severity
Medium6.5
Known exploitation
Not in CISA/VulnCheck KEV
EPSS
0.15%
Remediation
Version ranges on file
Affected products
cargo zip · rust zip

### Summary An AES-encrypted (AE-x) entry's authentication code is verified only when the reader's byte counter lands exactly on zero. If the bounded entry reader reaches the archive's actual EOF before the attacker-controlled, header-declared , the counter remains positive, the HMAC is never read or compared, and the truncated, unauthenticated plaintext is returned as a clean end of stream. A zero-payload entry also returns before authentication. An attacker who does not know the password can modify an archive so chosen or modified plaintext is accepted with no error. ### Details [ ](https://github.com/zip-rs/zip2/blob/6f09b3064ec87c3a69ea9f3413f9f9638b4aa446/src/aes.rs#L246-L292): starts at ([ ](https://github.com/zip-rs/zip2/blob/6f09b3064ec87c3a69ea9f3413f9f9638b4aa446/src/aes.rs#L144-L145)), where comes straight from the attacker-controlled central directory. Nothing cross-checks the declared data span against the archive's structural boundaries: is just ([ ](https://github.com/zip-rs/zip2/blob/6f09b3064ec87c3a69ea9f3413f9f9638b4aa446/src/types.rs#L214-L223)), and passes the declared value into ([ ](https://github.com/zip-rs/zip2/blob/6f09b3064ec87c3a69ea9f3413f9f9638b4aa446/src/read/readers.rs#L219-L223)). When the entry's bounded reader reaches true EOF before the declared size, the inner reader returns , the subtraction takes away nothing, and the finalisation block — the only place the 10-byte HMAC-SHA1-80 tag is read and compared — never runs. If bytes such as the central directory follow the entry, they are consumed as payload until the limit is reached; the HMAC then usually fails. The bypass therefore requires true EOF at the premature end (as in the PoC) or the zero-payload case. The early return at the top of means an entry whose declared size leaves zero payload bytes is never authenticated either, even though its tag is present in the file. This defeats the guarantee the type documents: *"After the data has been read and decrypted an HMAC will be ch

Are you affected?

Enter the version you run. The result uses only the ranges stored on this record.

The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.

  • cargo zip>=0.6.0 <9.0.0
  • rust zip>= 0.6.0, < 9.0.0

How to fix CVE-2026-115906

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

No confirmed exploitation is on record for CVE-2026-115906. EPSS is 0.15%. Act only if a listed version of zip: AES Entry HMAC is installed.

Which versions are affected?

Compare what you have installed with >=0.6.0 <9.0.0, >= 0.6.0, < 9.0.0. Compare the installed version with the linked vendor advisory before you change production.

What should an analyst verify?

CWE-1284; CWE-354. EPSS 0.15%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Code

The project this record applies to. Exploit listings stay in References.

Timeline

Detection, updates, and resolution for this record.

  1. Oct 29, 2026 · GitHub Advisory Database

    Detected

    ### Summary An AES-encrypted (AE-x) entry's authentication code is verified only when the reader's byte counter lands exactly on zero. If the bounded entry reader reaches the archive's actual EOF before the attacker-controlled, header-declared , the counter remains positive, the HMAC is never read or compared, and the truncated, unauthenticated plaintext is returned as a clean end of stream. A zer

  2. Oct 29, 2026 · GitHub Advisory Database

    Updated

    ### Summary An AES-encrypted (AE-x) entry's authentication code is verified only when the reader's byte counter lands exactly on zero. If the bounded entry reader reaches the archive's actual EOF before the attacker-controlled, header-declared , the counter remains positive, the HMAC is never read or compared, and the truncated, unauthenticated plaintext is returned as a clean end of stream. A zer

  3. Oct 31, 2026 · NIST NVD

    Updated

    zip is a zip library for Rust that supports reading and writing simple ZIP files. From 0.6.0 until 9.0.0, the AES entry reader in src/aes.rs verifies its HMAC only when the attacker-controlled data counter reaches zero. If the underlying bounded reader reaches the real end of the archive while data_remaining is still positive, or if an encrypted entry has no payload, the reader can return a clean

Sources

  • CVE.orgVulnerability recordCVE-2026-115906

    Official CVE identifier

    cve.org
  • FIRST EPSSExploitation probabilityCVE-2026-115906

    30-day exploitation probability 0.15%

    first.org
  • GitHub Advisory DatabasePackage advisoryGHSA-8hxf-qr8p-62x4

    zip: AES Entry HMAC Authentication Bypass on Premature EOF

    github.com
  • GitLab Advisory DatabasePackage advisoryCVE-2026-115906

    An AES-encrypted (AE-x) entry's authentication code is verified only when the reader's byte counter lands exactly on zero. If the bounded entry reader reaches the archive's actual EOF before the attacker-controlled, header-declared compressed_size, the counter remains positive, the HMAC is never read or compared, and the truncated, unauthenticated plaintext is returned as a clean end of stream. A

    advisories.gitlab.com
  • GitLab Advisory DatabasePackage advisorycargo/zip/CVE-2026-115906.yml

    An AES-encrypted (AE-x) entry's authentication code is verified only + when the reader's byte counter lands exactly on zero. If the bounded entry reader + reaches the archive's actual EOF before the attacker-controlled, header-declared + , the counter remains positive, the HMAC is never read or compared, + and the truncated, unauthenticated plaintext is returned as a clean end of stream. + A zero-

    gitlab.com
  • NIST NVDVulnerability recordCVE-2026-115906

    zip is a zip library for Rust that supports reading and writing simple ZIP files. From 0.6.0 until 9.0.0, the AES entry reader in src/aes.rs verifies its HMAC only when the attacker-controlled data counter reaches zero. If the underlying bounded reader reaches the real end of the

    nvd.nist.gov

References

Freshness

Last verified in this catalog Nov 8, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.

  • FIRST EPSSNov 8, 2026
  • GitLab Advisory DatabaseNov 1, 2026
  • NIST NVDOct 31, 2026
  • CVE.orgOct 30, 2026
  • GitLab Advisory DatabaseOct 30, 2026
  • GitHub Advisory DatabaseOct 30, 2026