Description
adm-zip through 0.6.1 contains a duplicate-entry validation bypass that allows attackers to evade the readEntries() check by using canonically equivalent entry names like './hello.txt' and 'hello.txt'. Attackers can craft ZIP archives where getEntry() or readAsText() validates benign content while extractAllTo() writes malicious content to the same path, bypassing integrity checks.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| cthackers | adm-zip | ≤ 0.6.1 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | python-tensorboard | No fix yet | — |
References
- GitHub Issue #587 issue-tracking
- https://github.com/cthackers/adm-zip product
- https://github.com/cthackers/adm-zip/blob/cb2cf9ba4c7c865db426e2de1997cb41194d9872/zipFile.js#L81-L92 technical-description
- https://github.com/cthackers/adm-zip/blob/cb2cf9ba4c7c865db426e2de1997cb41194d9872/adm-zip.js#L87 technical-description
- https://github.com/cthackers/adm-zip/blob/cb2cf9ba4c7c865db426e2de1997cb41194d9872/util/utils.js#L383 technical-description
- VulnCheck Advisory: adm-zip through 0.6.1 Duplicate-Entry Validation Bypass via Canonically Equivalent Names third-party-advisory