Skip to content

fix: upgrade zip to 9.5.0 and flag zip cloaking - #5

Merged
bajrangCoder merged 1 commit into
mainfrom
fix/zip-9
Nov 9, 2026
Merged

bajrangCoder merged 1 commit into
mainfrom
fix/zip-9

Conversation

@bajrangCoder

Copy link
Copy Markdown
Member

Fixed

  • Upgrade zip from 2.4.2 to 9.5.0, which fixes the three Dependabot advisories (zip cloaking, symlink-target handling, AES HMAC bypass).
  • Entry names are decoded as UTF-8 like JSZip, with no CP437 fallback.

Added

  • archive.header_mismatch (High): flags local file headers that disagree with the central directory ("zip cloaking"). The files Acode installs are still scanned.
  • Entries are read with ZipIterable, so every copy of a duplicate name is kept and the last one wins, matching JSZip. zip 9's ZipArchive would drop duplicates.
  • Tests built from raw zips cover exact duplicate names and mismatched headers.
  • Rules version is now 2026.11.2.

zip 2.4.2 has open advisories, including the critical "zip cloaking"
parser differential, where local file headers and the central directory
describe different files.

- Upgrade zip to 9.5.0 with only pure-Rust deflate (zlib-rs), pinned
  exactly because the reader uses `zip::unstable::read::ZipIterable`.
- Read entries with `ZipIterable`, which walks the central directory in
  order and keeps duplicate names like JSZip. zip 9's `ZipArchive`
  indexes entries by name and drops duplicates, which would hide the copy
  Acode installs.
- New `archive.header_mismatch` (High): a separate pass validates every
  local header against the central directory, so a cloaked zip needs
  review while the installed files are still scanned.
- Decode entry names as UTF-8 like JSZip instead of falling back to CP437.
- Add raw-zip tests for exact duplicate names and cloaked headers.
- Bump rules version to 2026.11.2.
@bajrangCoder
bajrangCoder merged commit cd84ac5 into main Nov 9, 2026
4 checks passed
@bajrangCoder
bajrangCoder deleted the fix/zip-9 branch November 9, 2026 06:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant