Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applicationsUpgrade yauzl to version 3.2.1 or higher.
Affected versions of this package are vulnerable to Off-by-one Error via the entry.getLastModDate() function. An attacker can cause the process or the Node.js server to crash by submitting a malicious zip file containing a malformed NTFS extra field.
// Direct demonstration of the buffer OOB read
const data = Buffer.alloc(4); // NTFS extra field with 4 bytes of data
let cursor = 4;
while (cursor < data.length + 4) { // cursor reaches 4 = data.length
const tag = data.readUInt16LE(cursor); // THROWS: offset 4 out of range [0, 2]
cursor += 2;
const size = data.readUInt16LE(cursor);
cursor += 2;
}