Skip to content

Releases: cthackers/adm-zip

v0.6.1

Choose a tag to compare

@cthackers cthackers released this 11 Sep 10:30

Full Changelog: 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

Choose a tag to compare

@cthackers cthackers released this 10 Jul 20:07

Full Changelog: v0.5.18...v0.6.0

This release fixes a security vulnerability (CVE-2026-39244), resolves several long-standing bugs, ships built-in TypeScript types, and includes two behavior changes worth reading before you upgrade.

  • extractEntryTo(dirEntry, target, maintainEntryPath = false) now preserves subdirectories instead of flattening files into the target folder by basename (which also silently overwrote same-named files). (#306)
  • Extraction no longer fails when the modification time can't be set — utimes is now best-effort. (#379)
  • Minimum Node.js is now 14 (the code already required it; engines was incorrectly >=12).
  • CVE-2026-39244 — a crafted archive declaring a huge uncompressed size could force an unbounded Buffer.alloc and OOM the process; allocation is now bounded by the data actually present. Reported by Daniel Púa (devploit), Anh Hong, and José Antonio Zamudio Amaya. (#568)
  • Hardened entry-name lookup against object injection (proto names). Prototype-less table.
  • Data-descriptor regression rejecting valid archives (#548, #533, #554)
  • Directory permissions not restored on extract (#530)
  • Infinite recursion on symlink loops in addLocalFolder (#541)
  • Uncaught process crash in writeFileToAsync on write failure (#470, #459, #402)
  • Empty name on directory entries (#466)
  • test() always returned false for archives with files
  • ~6× faster entry sorting for large archives
  • Built-in TypeScript definitions (types.d.ts) — you can drop @types/adm-zip

v0.5.18

Choose a tag to compare

@cthackers cthackers released this 29 Jun 09:09

What's Changed

New Contributors

Full Changelog: v0.5.17...v0.5.18

v0.5.17

Choose a tag to compare

@cthackers cthackers released this 01 Apr 10:06

What's Changed

New Contributors

Full Changelog: v0.5.16...v0.5.17

v0.5.16

Choose a tag to compare

@cthackers cthackers released this 30 Aug 07:41

What's Changed

New Contributors

Full Changelog: v0.5.15...v0.5.16

v0.5.15

Choose a tag to compare

@cthackers cthackers released this 05 Aug 18:42

What's Changed

New Contributors

Full Changelog: v0.5.14...v0.5.15

v0.5.14

Choose a tag to compare

@cthackers cthackers released this 04 Jun 11:48

Fixed an issue introduced on version 0.5.13 requiring a new mandatory parameter on the inflater on nodejs version >= 15

v0.5.13

Choose a tag to compare

@cthackers cthackers released this 01 Jun 10:32
  • Fixed extractAllToAsync callback @5saviahv
  • Fixed issue with "toAsyncBuffer" where after that command all entries are gone @5saviahv
  • Minor fixes (tests, typos etc) @5saviahv
  • Added a an option to specificy the maximum expectedLength of the file to protect against zip bombs or limit memory usage @undefined-moe
  • Add check for invalid large disk entries @criyle

v0.5.12

Choose a tag to compare

@cthackers cthackers released this 14 Mar 06:52

Fixed extraction error

v0.5.11

Choose a tag to compare

@cthackers cthackers released this 13 Mar 14:17
  • Add support for Info-Zip password check spec for ZipCrypto @lukemalcolm
  • Extraction of password protected zip entries @Santa77
  • Fixed unnecessary scanning a local file headers (except in the case of corrupted archives) @likev
  • Added GitHub actions @kibertoad
  • Fixed cases when extra data was lost @yfdyh000
  • Fixed throw empty error in extractAllToAsync on operation done @Autokaka