Vulnerability Description
yauzl (aka Yet Another Unzip Library) version 3.2.0 for Node.js contains an off-by-one error in the NTFS extended timestamp extra field parser within the getLastModDate() function. The while loop condition checks cursor < data.length + 4 instead of cursor + 4 <= data.length, allowing readUInt16LE() to read past the buffer boundary. A remote attacker can cause a denial of service (process crash via ERR_OUT_OF_RANGE exception) by sending a crafted zip file with a malformed NTFS extra field. This affects any Node.js application that processes zip file uploads and calls entry.getLastModDate() on parsed entries. Fixed in version 3.2.1.
CVSS Score
MEDIUM
Related Weaknesses (CWE)
References
- https://github.com/thejoshwolfe/yauzl/commit/c4695215b05c6adffda613b9051a2a85429
- https://www.codeant.ai/security-research/yauzl-denial-of-service-zip-file-crash
- https://www.npmjs.com/package/yauzl
- https://www.vulncheck.com/advisories/yauzl-denial-of-service-via-off-by-one-erro
- https://www.codeant.ai/security-research/yauzl-denial-of-service-zip-file-crash
FAQ
What is CVE-2026-31988?
CVE-2026-31988 is a vulnerability with a CVSS score of 5.3 (MEDIUM). yauzl (aka Yet Another Unzip Library) version 3.2.0 for Node.js contains an off-by-one error in the NTFS extended timestamp extra field parser within the getLastModDate() function. The while loop cond...
How severe is CVE-2026-31988?
CVE-2026-31988 has been rated MEDIUM with a CVSS base score of 5.3/10. Review the CVSS metrics above for detailed severity breakdown.
Is there a patch for CVE-2026-31988?
Check the references section above for vendor advisories and patch information. Review vendor security bulletins for remediation guidance.