{"id":"CVE-2026-114102","kind":"vulnerability","aliases":["CVE-2026-114102"],"related":[],"title":"adm-zip: malformed ZIP crashes Node.js process via missing error listener","description":"adm-zip before 0.6.1 contains a denial of service vulnerability that allows unauthenticated attackers to crash the Node.js process via a malformed ZIP file, because inflateAsync in methods/inflater.js lacks a zlib stream error listener. Attackers can supply a ZIP with corrupted DEFLATE data processed by readFileAsync, readAsTextAsync, extractAllToAsync, or getDataAsync, triggering an uncatchable exception that terminates all in-flight requests.","summary":"adm-zip before 0.6.1 does not handle zlib stream errors in its async inflater, so a ZIP with corrupted DEFLATE data throws an uncatchable exception. An unauthenticated attacker who can get such a file processed can crash the whole Node.js process and drop all in-flight requests.","severity":"high","cvss":8.7,"epss":0.00291,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["adm-zip","file-upload","node.js","package","self-hosted"],"not_affected_if":["no-untrusted-zip-input","sync-api-only","version-0.6.1-or-later"],"how_to_check":"Run `npm ls adm-zip` in each project and check whether the resolved version is below 0.6.1.\nLook for code calling readFileAsync, readAsTextAsync, extractAllToAsync or getDataAsync on untrusted uploads.","fix":"Upgrade adm-zip to 0.6.1 or later.\nUntil then, avoid the async APIs listed above on untrusted input or validate archives before processing.","status":"open","published_at":"2026-10-21T01:17:35+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","triaged_at":"2026-10-23T22:36:58+00:00","updated_at":"2026-10-24T13:15:54+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T22:36:58Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade adm-zip to 0.6.1 or later.\nUntil then, avoid the async APIs listed above on untrusted input or validate archives before processing.","reach":"internet","title":"adm-zip: malformed ZIP crashes Node.js process via missing error listener","impact":"medium","summary":"adm-zip before 0.6.1 does not handle zlib stream errors in its async inflater, so a ZIP with corrupted DEFLATE data throws an uncatchable exception. An unauthenticated attacker who can get such a file processed can crash the whole Node.js process and drop all in-flight requests.","category":"package","who_cares":["node.js","adm-zip","self-hosted","file-upload"],"confidence":0.8,"needs_auth":"no","worst_case":"Attacker crashes the Node.js process, taking down all in-flight requests.","analyst_note":"","how_to_check":"Run `npm ls adm-zip` in each project and check whether the resolved version is below 0.6.1.\nLook for code calling readFileAsync, readAsTextAsync, extractAllToAsync or getDataAsync on untrusted uploads.","needs_analyst":false,"not_affected_if":["version-0.6.1-or-later","no-untrusted-zip-input","sync-api-only"],"user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000537,"input_tokens":2984,"output_tokens":478,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-114102':15A,18A '-2026':14A,17A '0.6.1':34B,83C 'adm':2A,20B,31B,80C 'adm-zip':1A,19B,30B,79C 'allow':91C 'async':43B 'attack':58B,93C,114C 'contain':84C 'corrupt':49B,120C 'crash':6A,67B,95C 'cve':13A,16A 'data':51B,122C 'deflat':50B,121C 'denial':86C 'drop':73B 'error':11A,40B,112C 'except':55B,133C 'extractalltoasync':127C 'file':23B,64B,103C 'file-upload':22B 'flight':77B,139C 'get':61B 'getdataasync':129C 'handl':37B 'host':29B 'in-flight':75B,137C 'inflat':44B 'inflateasync':105C 'lack':108C 'listen':12A,113C 'malform':4A,101C 'methods/inflater.js':107C 'miss':10A 'node.js':7A,25B,70B,97C 'packag':26B 'process':8A,65B,71B,98C,123C 'readastextasync':126C 'readfileasync':125C 'request':78B,140C 'self':28B 'self-host':27B 'servic':88C 'stream':39B,111C 'suppli':116C 'termin':135C 'throw':52B 'trigger':130C 'unauthent':57B,92C 'uncatch':54B,132C 'upload':24B 'via':9A,99C 'vulner':89C 'whole':69B 'zip':3A,5A,21B,32B,47B,81C,102C,118C 'zlib':38B,110C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T01:17:35+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114102","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114102","severity":null,"published_at":"2026-10-21T01:17:35+00:00","modified_at":"2026-10-22T16:17:34+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"epss","external_id":"CVE-2026-114102","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-114102","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:54+00:00","fetched_at":"2026-10-24T13:15:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}