Skip to content

Update dependency adm-zip to ^0.6.0 - #418

Open
mend-for-github-com[bot] wants to merge 1 commit into
mainfrom
whitesource-remediate/adm-zip-0.x
Open

mend-for-github-com[bot] wants to merge 1 commit into
mainfrom
whitesource-remediate/adm-zip-0.x

Conversation

@mend-for-github-com

@mend-for-github-com mend-for-github-com Bot commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
adm-zip dependencies minor ^0.5.16 → ^0.6.0

By merging this PR, the issue #399 will be automatically resolved and closed:

Severity CVSS Score Vulnerability
High High 7.5 CVE-2026-114102
High High 7.5 CVE-2026-77301
High High 7.5 CVE-2026-92000
Medium Medium 6.2 CVE-2026-114105
Medium Medium 5.9 CVE-2026-114104
Medium Medium 5.3 CVE-2026-114103

Release Notes

cthackers/adm-zip (adm-zip)

v0.6.1

Compare Source

Full Changelog: cthackers/adm-zip@v0.6.0...v0.6.1

  • Updated dev dependencies
  • Fixed uncaught crash in async decompression on malformed DEFLATE data
  • Fixed addLocalFolder following symlinks out of the archived folder
  • Stripped setuid/setgid/sticky bits from extracted file permissions
  • Enforced the decompression size cap on the async path and for size 0
  • Rejected archives with duplicate entry names
  • Blocked extraction from writing through symlinks inside the target
  • Routed malformed-header parse errors through the async callback
  • Rejected zip entries whose declared data extent runs past the buffer
  • Fixed addLocalFolderPromise hanging on empty folders and swallowing errors
  • Fixed addLocalFolderAsync2 mangling local paths on Windows

v0.6.0

Compare Source

==================

Security

  • Fixed CVE-2026-39244: a crafted archive declaring a huge uncompressed size could force an unbounded Buffer.alloc (memory exhaustion / DoS) before any validation. Allocation is now bounded by the data actually present — STORED output is sized from the real bytes, DEFLATED output is grown by the inflater and capped at the declared size (#​568)
  • Hardened the internal entry-name lookup table against object injection: entry names come from untrusted archives, and a name such as __proto__ previously resolved to Object.prototype, crashing addFile and hiding the entry from getEntry/readFile. The table is now prototype-less

Bug fixes

  • Fixed a regression (0.5.15) that rejected valid archives using a data descriptor (general-purpose bit 3). The payload is now validated against the authoritative central-directory CRC instead of requiring/parsing the trailing descriptor (#​548, #​533, #​554)
  • Fixed extractAllTo/extractAllToAsync not restoring directory permissions with keepOriginalPermission; directory modes are applied after their contents are written, deepest path first, and no longer lock the extractor out of a restrictive directory (#​530)
  • Fixed infinite recursion in addLocalFolder when a folder contains a symlink pointing back to an ancestor (e.g. workspace node_modules); the walk now tracks resolved real paths and skips already-visited directories (#​541)
  • Fixed an uncaught exception (ERR_INVALID_ARG_TYPE) that crashed the process when writeFileToAsync could not open the target file (bad permissions, invalid filename, exhausted file descriptors); write failures are now reported through the callback and write errors are no longer silently swallowed (#​470, #​459, #​402)
  • Fixed directory entries reporting an empty name (e.g. a/b/c/ now returns c) (#​466)
  • Fixed extractEntryTo flattening subdirectories when maintainEntryPath is false; the structure below the extracted directory is now preserved instead of collapsing (and overwriting) files by basename (#​306)
  • Fixed a failed utimes aborting extraction; setting the modification time is now best-effort and never fails extraction of already-written content (#​379)
  • Fixed test() always returning false for any archive containing a file (it indexed the entries array with an entry object instead of reading the entry); it now correctly verifies each entry's CRC

Performance

  • Faster entry sorting when writing archives with many entries: names are decoded once instead of on every comparison (about 6× faster sort for large archives)

Added

  • Bundled TypeScript type definitions (types.d.ts), so @types/adm-zip is no longer required

Notes

  • Behavior change: extractEntryTo(dir, target, /* maintainEntryPath */ false) now preserves subdirectories beneath the extracted directory rather than flattening them
  • Behavior change: extraction no longer fails when the modification time cannot be set

  • If you want to rebase/retry this PR, check this box

@mend-for-github-com mend-for-github-com Bot added the security fix Security fix generated by Mend label Sep 16, 2026
@mend-for-github-com
mend-for-github-com Bot force-pushed the whitesource-remediate/adm-zip-0.x branch 3 times, most recently from 9b3150d to fc1baec Compare September 18, 2026 23:49
@mend-for-github-com
mend-for-github-com Bot force-pushed the whitesource-remediate/adm-zip-0.x branch from fc1baec to 76943e8 Compare September 29, 2026 18:09
@mend-for-github-com
mend-for-github-com Bot force-pushed the whitesource-remediate/adm-zip-0.x branch 5 times, most recently from fbce541 to 6631104 Compare October 12, 2026 13:32
@mend-for-github-com
mend-for-github-com Bot force-pushed the whitesource-remediate/adm-zip-0.x branch 2 times, most recently from 1083e97 to 30fd16e Compare October 20, 2026 16:49
@mend-for-github-com
mend-for-github-com Bot force-pushed the whitesource-remediate/adm-zip-0.x branch from 30fd16e to 7d25eeb Compare October 22, 2026 19:06

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

security fix Security fix generated by Mend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants