{"api_version":"1","generated_at":"2026-11-12T01:59:23+00:00","cve":"CVE-2026-123862","urls":{"html":"https://cve.report/CVE-2026-123862","api":"https://cve.report/api/cve/CVE-2026-123862.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-123862","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-123862"},"summary":{"title":"Node.js is vulnerable to a zlib denial of service via a stream destroy during a pending params() call","description":"An uncatchable exception in the Node.js zlib streaming API lets a peer crash a process by disconnecting while data is being compressed. zlib.params() queues a flush and completes its work in that write's callback; if the stream is destroyed first, as pipeline() does when the peer goes away, Writable still invokes the callback with an error, but the callback ignores its arguments and asserts that the native handle still exists. The handle is gone, so an ERR_INTERNAL_ASSERTION is thrown from inside stream internals and bypasses the stream's error event, the params() callback, and the pipeline() callback, terminating the process. An application is affected only if it calls deflate.params() while streaming to a peer, which is uncommon. This vulnerability affects Node.js 26.x, 24.x, and 22.x.","state":"PUBLISHED","assigner":"openjs","published_at":"2026-11-11 19:17:32","updated_at":"2026-11-11 19:17:32"},"problem_types":["CWE-248","CWE-248 Uncaught Exception"],"metrics":[{"version":"3.0","source":"ce714d77-add3-4f53-aff5-83d477b104bb","type":"Secondary","score":"2.9","severity":"LOW","vector":"CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","data":{"version":"3.0","vectorString":"CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","baseScore":2.9,"baseSeverity":"LOW","attackVector":"LOCAL","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"LOW"}},{"version":"3.0","source":"CNA","type":"CVSS","score":"2.9","severity":"LOW","vector":"CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","data":{"baseScore":2.9,"baseSeverity":"LOW","vectorString":"CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","version":"3.0"}}],"references":[{"url":"https://cna.openjsf.org/security-advisories.html","name":"https://cna.openjsf.org/security-advisories.html","refsource":"ce714d77-add3-4f53-aff5-83d477b104bb","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://nodejs.org/en/blog/vulnerability/november-2026-security-releases","name":"https://nodejs.org/en/blog/vulnerability/november-2026-security-releases","refsource":"ce714d77-add3-4f53-aff5-83d477b104bb","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-123862","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123862","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"nodejs","product":"node","version":"affected 0.0.0 22.23.5 semver","platforms":[]},{"source":"CNA","vendor":"nodejs","product":"node","version":"affected 23.0.0 24.22.3 semver","platforms":[]},{"source":"CNA","vendor":"nodejs","product":"node","version":"affected 25.0.0 26.13.1 semver","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"Chris Rohlf in collaboration with Claude and Anthropic Research","lang":"en"},{"source":"CNA","value":"mcollina","lang":"en"},{"source":"CNA","value":"UlisesGascon","lang":"en"},{"source":"CNA","value":"aduh95","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"node","vendor":"nodejs","versions":[{"lessThan":"22.23.5","status":"affected","version":"0.0.0","versionType":"semver"},{"lessThan":"24.22.3","status":"affected","version":"23.0.0","versionType":"semver"},{"lessThan":"26.13.1","status":"affected","version":"25.0.0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"reporter","value":"Chris Rohlf in collaboration with Claude and Anthropic Research"},{"lang":"en","type":"remediation developer","value":"mcollina"},{"lang":"en","type":"remediation reviewer","value":"UlisesGascon"},{"lang":"en","type":"coordinator","value":"aduh95"}],"descriptions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/markdown","value":"An uncatchable exception in the Node.js zlib streaming API lets a peer crash a process by disconnecting while data is being compressed. `zlib.params()` queues a flush and completes its work in that write's callback; if the stream is destroyed first, as `pipeline()` does when the peer goes away, `Writable` still invokes the callback with an error, but the callback ignores its arguments and asserts that the native handle still exists. The handle is gone, so an `ERR_INTERNAL_ASSERTION` is thrown from inside stream internals and bypasses the stream's `error` event, the `params()` callback, and the `pipeline()` callback, terminating the process. An application is affected only if it calls `deflate.params()` while streaming to a peer, which is uncommon. This vulnerability affects Node.js 26.x, 24.x, and 22.x."}],"value":"An uncatchable exception in the Node.js zlib streaming API lets a peer crash a process by disconnecting while data is being compressed. zlib.params() queues a flush and completes its work in that write's callback; if the stream is destroyed first, as pipeline() does when the peer goes away, Writable still invokes the callback with an error, but the callback ignores its arguments and asserts that the native handle still exists. The handle is gone, so an ERR_INTERNAL_ASSERTION is thrown from inside stream internals and bypasses the stream's error event, the params() callback, and the pipeline() callback, terminating the process. An application is affected only if it calls deflate.params() while streaming to a peer, which is uncommon. This vulnerability affects Node.js 26.x, 24.x, and 22.x."}],"metrics":[{"cvssV3_0":{"baseScore":2.9,"baseSeverity":"LOW","vectorString":"CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","version":"3.0"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-248","description":"Uncaught Exception","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-11T18:14:26.996Z","orgId":"ce714d77-add3-4f53-aff5-83d477b104bb","shortName":"openjs"},"references":[{"tags":["vendor-advisory"],"url":"https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"},{"url":"https://cna.openjsf.org/security-advisories.html"}],"title":"Node.js is vulnerable to a zlib denial of service via a stream destroy during a pending params() call","x_generator":{"engine":"nodejs-private/security-release publish-cves"}}},"cveMetadata":{"assignerOrgId":"ce714d77-add3-4f53-aff5-83d477b104bb","assignerShortName":"openjs","cveId":"CVE-2026-123862","datePublished":"2026-11-11T18:14:26.996Z","dateReserved":"2026-11-06T16:11:55.196Z","dateUpdated":"2026-11-11T18:14:26.996Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-11 19:17:32","lastModifiedDate":"2026-11-11 19:17:32","problem_types":["CWE-248","CWE-248 Uncaught Exception"],"metrics":{"cvssMetricV30":[{"source":"ce714d77-add3-4f53-aff5-83d477b104bb","type":"Secondary","cvssData":{"version":"3.0","vectorString":"CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L","baseScore":2.9,"baseSeverity":"LOW","attackVector":"LOCAL","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"LOW"},"exploitabilityScore":1.4,"impactScore":1.4}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"123862","Ordinal":"1","Title":"Node.js is vulnerable to a zlib denial of service via a stream d","CVE":"CVE-2026-123862","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"123862","Ordinal":"1","NoteData":"An uncatchable exception in the Node.js zlib streaming API lets a peer crash a process by disconnecting while data is being compressed. zlib.params() queues a flush and completes its work in that write's callback; if the stream is destroyed first, as pipeline() does when the peer goes away, Writable still invokes the callback with an error, but the callback ignores its arguments and asserts that the native handle still exists. The handle is gone, so an ERR_INTERNAL_ASSERTION is thrown from inside stream internals and bypasses the stream's error event, the params() callback, and the pipeline() callback, terminating the process. An application is affected only if it calls deflate.params() while streaming to a peer, which is uncommon. This vulnerability affects Node.js 26.x, 24.x, and 22.x.","Type":"Description","Title":"Node.js is vulnerable to a zlib denial of service via a stream d"}]}}}