CVE-2026-31988: Off-by-one Error in thejoshwolfe yauzl
CVE-2026-31988 is an off-by-one vulnerability in the yauzl Node. js library version 3. 2. 0, specifically in the NTFS extended timestamp extra field parser within the getLastModDate() function. The flaw allows a crafted zip file with a malformed NTFS extra field to cause a denial of service by triggering a process crash via an ERR_OUT_OF_RANGE exception. This occurs because the code reads beyond the buffer boundary due to incorrect loop boundary checks. The vulnerability affects any Node. js application that processes zip uploads and calls entry. getLastModDate() on parsed entries. No authentication or user interaction is required to exploit this remotely.
AI Analysis
Technical Summary
The vulnerability CVE-2026-31988 resides in the yauzl library, a popular Node.js module used for unzipping files. In version 3.2.0, the getLastModDate() function parses the NTFS extended timestamp extra field of zip entries. The parsing loop uses an incorrect boundary condition: it checks if the cursor is less than data.length + 4 instead of ensuring cursor + 4 is less than or equal to data.length. This off-by-one error allows the readUInt16LE() function to read two bytes beyond the buffer boundary, leading to an ERR_OUT_OF_RANGE exception. When a Node.js application processes a maliciously crafted zip file containing a malformed NTFS extra field and calls entry.getLastModDate(), it can trigger a denial of service by crashing the process. This vulnerability does not require any privileges or user interaction and can be exploited remotely by submitting a specially crafted zip file. The issue was addressed in yauzl version 3.2.1 by correcting the loop boundary condition to prevent out-of-bounds reads. The CVSS 4.0 vector indicates network attack vector, low attack complexity, no privileges or user interaction required, and limited impact on availability (denial of service). No known exploits have been reported in the wild, but the vulnerability poses a risk to any Node.js applications that handle zip file uploads and utilize this function.
Potential Impact
The primary impact of this vulnerability is a denial of service condition caused by a process crash in Node.js applications using yauzl 3.2.0 to process zip files. This can disrupt services that rely on zip file uploads, such as web applications, APIs, or automated processing pipelines, potentially leading to downtime or degraded service availability. Since the vulnerability can be triggered remotely without authentication or user interaction, attackers can exploit it to cause repeated crashes, resulting in service interruptions or resource exhaustion. Although the vulnerability does not lead to code execution or data leakage, the denial of service impact can affect business operations, customer trust, and system reliability. Organizations that rely heavily on Node.js applications for file processing, especially those accepting user-uploaded zip files, are at risk. The absence of known exploits reduces immediate threat but does not eliminate the risk of future exploitation. The medium severity rating reflects the moderate impact and ease of exploitation.
Mitigation Recommendations
Organizations should immediately upgrade the yauzl library to version 3.2.1 or later, where the off-by-one error has been fixed. For applications that cannot upgrade immediately, implement input validation to reject zip files containing suspicious or malformed NTFS extra fields before processing. Employ sandboxing or process isolation techniques to limit the impact of potential crashes caused by malformed files. Incorporate robust error handling around calls to entry.getLastModDate() to gracefully handle exceptions without crashing the entire application. Monitor application logs for ERR_OUT_OF_RANGE exceptions or unusual crashes related to zip file processing. Additionally, consider rate limiting or filtering zip file uploads from untrusted sources to reduce exposure. Regularly review and update dependencies to ensure vulnerabilities are patched promptly. Finally, conduct security testing on file upload features to detect similar parsing issues proactively.
Affected Countries
United States, Germany, United Kingdom, India, Canada, Australia, France, Japan, Netherlands, Brazil
CVE-2026-31988: Off-by-one Error in thejoshwolfe yauzl
Description
CVE-2026-31988 is an off-by-one vulnerability in the yauzl Node. js library version 3. 2. 0, specifically in the NTFS extended timestamp extra field parser within the getLastModDate() function. The flaw allows a crafted zip file with a malformed NTFS extra field to cause a denial of service by triggering a process crash via an ERR_OUT_OF_RANGE exception. This occurs because the code reads beyond the buffer boundary due to incorrect loop boundary checks. The vulnerability affects any Node. js application that processes zip uploads and calls entry. getLastModDate() on parsed entries. No authentication or user interaction is required to exploit this remotely.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability CVE-2026-31988 resides in the yauzl library, a popular Node.js module used for unzipping files. In version 3.2.0, the getLastModDate() function parses the NTFS extended timestamp extra field of zip entries. The parsing loop uses an incorrect boundary condition: it checks if the cursor is less than data.length + 4 instead of ensuring cursor + 4 is less than or equal to data.length. This off-by-one error allows the readUInt16LE() function to read two bytes beyond the buffer boundary, leading to an ERR_OUT_OF_RANGE exception. When a Node.js application processes a maliciously crafted zip file containing a malformed NTFS extra field and calls entry.getLastModDate(), it can trigger a denial of service by crashing the process. This vulnerability does not require any privileges or user interaction and can be exploited remotely by submitting a specially crafted zip file. The issue was addressed in yauzl version 3.2.1 by correcting the loop boundary condition to prevent out-of-bounds reads. The CVSS 4.0 vector indicates network attack vector, low attack complexity, no privileges or user interaction required, and limited impact on availability (denial of service). No known exploits have been reported in the wild, but the vulnerability poses a risk to any Node.js applications that handle zip file uploads and utilize this function.
Potential Impact
The primary impact of this vulnerability is a denial of service condition caused by a process crash in Node.js applications using yauzl 3.2.0 to process zip files. This can disrupt services that rely on zip file uploads, such as web applications, APIs, or automated processing pipelines, potentially leading to downtime or degraded service availability. Since the vulnerability can be triggered remotely without authentication or user interaction, attackers can exploit it to cause repeated crashes, resulting in service interruptions or resource exhaustion. Although the vulnerability does not lead to code execution or data leakage, the denial of service impact can affect business operations, customer trust, and system reliability. Organizations that rely heavily on Node.js applications for file processing, especially those accepting user-uploaded zip files, are at risk. The absence of known exploits reduces immediate threat but does not eliminate the risk of future exploitation. The medium severity rating reflects the moderate impact and ease of exploitation.
Mitigation Recommendations
Organizations should immediately upgrade the yauzl library to version 3.2.1 or later, where the off-by-one error has been fixed. For applications that cannot upgrade immediately, implement input validation to reject zip files containing suspicious or malformed NTFS extra fields before processing. Employ sandboxing or process isolation techniques to limit the impact of potential crashes caused by malformed files. Incorporate robust error handling around calls to entry.getLastModDate() to gracefully handle exceptions without crashing the entire application. Monitor application logs for ERR_OUT_OF_RANGE exceptions or unusual crashes related to zip file processing. Additionally, consider rate limiting or filtering zip file uploads from untrusted sources to reduce exposure. Regularly review and update dependencies to ensure vulnerabilities are patched promptly. Finally, conduct security testing on file upload features to detect similar parsing issues proactively.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-03-10T19:48:11.109Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 69b1f7682f860ef94392e990
Added to database: 3/11/2026, 11:14:48 PM
Last enriched: 3/19/2026, 2:30:12 AM
Last updated: 4/24/2026, 11:57:17 PM
Views: 56
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.