Skip to content

Upgrading zip 8 to 9

Breaking8.6.0 → 9.2.1Breaking9Security12New25Changed15Fixed54Other32

Fetching 15 releases from GitHub…13 / 15
BreakingUpgrade verdict

9 breaking changes and 12 security fixes.

  • Removes the never-read ZipFileData::extra_data_start field.
  • Removes the inner compression method from AES options.
  • Removes deprecated *_zip64_comment methods.
  • Removes deprecated elements.
Top 5 of 21 that need code or config changes
Breaking9
Removes the never-read ZipFileData::extra_data_start field.
ZipFileData::extra_data_start
Removes the inner compression method from AES options.
Removes deprecated *_zip64_comment methods.
*_zip64_comment
Removes deprecated elements.
Removes fields from ZipFileData.
ZipFileData
Removes macro export.
Uses ZipFileEntry instead of ZipStreamFileMetadata.
ZipFileEntryZipStreamFileMetadata
Changes aes_mode to aes_settings() in ZipFileData.
ZipFileDataaes_modeaes_settings()
Stores the file_name_raw only as key.
file_name_raw
Security12
Wipes AES round keys when the cipher is dropped.
Zeroizes the AesCtrZipKeyStream buffer and counter on drop.
AesCtrZipKeyStream
Prevents symlink-follow truncation during extraction via FILE_FLAG_OPEN_REPARSE_POINT.
FILE_FLAG_OPEN_REPARSE_POINT
zip: Critical Parser Differential & Security Control Bypass via Dual-Header Inconsistencies (Zip Cloaking) Leading to Arbitrary File Overwrite & RCE
Critical
Insecure Preservation of SUID/SGID Bits during ZIP Extraction Leading to Potential Privilege Escalation
High · CVSS 7.3
zip: ZipArchive::extract creates symbolic links whose attacker-controlled targets are outside the destination directory
ZipStreamReader::extract() and ZipArchive::extract() apply Unix permissions through symlinks without confining the target
Critical · CVSS 9.1
zip: AES Entry HMAC Authentication Bypass on Premature EOF
Moderate · CVSS 6.5
zip: legacy Shrink/Reduce/Implode decoder: denial of service from attacker-controlled ZIP64 uncompressed size
High · CVSS 7.5
zip: Arbitrary file write outside the extraction directory, because ZipArchive::extract validates symlink targets lexically.
High · CVSS 7.4
zip: Unbounded Symlink-Target Handling Can Abort Or Exhaust Memory During Extraction
High · CVSS 7.5
Zeroizes derived_key when dropped and suppresses error details that may be sensitive.
derived_key