{"items":[{"id":"NVI-00019676","kind":"vulnerability","title":"adm-zip: Unhandled error event in async DEFLATE decompression crashes Node.js process (DoS)","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-8238-w5pm-2374","CVE-2026-114102"],"plain_summary":"OSV carries this publisher advisory for adm-zip. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 0.6.1 for adm-zip. Confirm the publisher’s latest guidance.","source_ids":["sr-9cd2238500b9011e125c8780b283793f"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-9cd2238500b9011e125c8780b283793f","url":"https://github.com/advisories/GHSA-8238-w5pm-2374","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-8238-w5pm-2374","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-11-08T01:48:32.415Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-9cd2238500b9011e125c8780b283793f"],"technology":"adm-zip","known_exclusions":[],"conditions_summary":"## Summary\n\nDenial of Service in `adm-zip`'s async decompression API allows an unauthenticated attacker to crash the entire Node.js host process by supplying a single malformed ZIP file.\n\n## Details\n\n**Affected package**: adm-zip\n**Affected versions**: at least 0.6.0 (current latest); likely all versions containing the current `inflateAsync` implementation in `methods/inflater.js`\n**Patched version**: 0.6.1\n\n### Root Cause\n\n`methods/inflater.js:12-32` (`inflateAsync`) creates a `zlib.createInflateRaw(option)` stream and feeds it attacker-controlled compressed bytes via `tmp.end(inbuf)`, but never registers an `\"error\"` listener on the stream:\n\n```js\ninflateAsync: function (/*Function*/ callback) {\n    var tmp = zlib.createInflateRaw(option),\n        parts = [],\n        total = 0;\n    tmp.on(\"data\", function (data) { parts.push(data); total += data.length; });\n    tmp.on(\"end\", function () { /* build buf, callback(buf) */ });\n    tmp.end(inbuf);   // no tmp.on(\"error\", ...) registered anywhere\n}\n```\n\nPer Node.js `EventEmitter`/stream semantics, an `\"error\"` event emitted with zero listeners is rethrown as an **uncaught exception on a later tick**, originating from the zlib C++ bindi","public_affected_ranges":["SEMVER: introduced 0; fixed 0.6.1"]}],"null_published_at":"2026-11-08T08:10:35.856Z","source_updated_at":"2026-10-21T10:57:20.841Z","source_disclosed_at":"2026-09-29T23:10:09.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-08T01:48:32.415Z"}],"next_cursor":null,"snapshot_revision":"42594"}