| Name | CVE-2026-21637 |
| Description | A flaw in Node.js TLS error handling allows remote attackers to crash or exhaust resources of a TLS server when `pskCallback` or `ALPNCallback` are in use. Synchronous exceptions thrown during these callbacks bypass standard TLS error handling paths (tlsClientError and error), causing either immediate process termination or silent file descriptor leaks that eventually lead to denial of service. Because these callbacks process attacker-controlled input during the TLS handshake, a remote client can repeatedly trigger the issue. This vulnerability affects TLS servers using PSK or ALPN callbacks across Node.js versions where these callbacks throw without being safely wrapped. |
| Source | CVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
| References | DSA-6166-1, DSA-6183-1 |
The table below lists information on source packages.
| Source Package | Release | Version | Status |
|---|---|---|---|
| nodejs (PTS) | bullseye | 12.22.12~dfsg-1~deb11u4 | vulnerable |
| bullseye (security) | 12.22.12~dfsg-1~deb11u7 | vulnerable | |
| bookworm, bookworm (security) | 18.20.4+dfsg-1~deb12u1 | vulnerable | |
| trixie | 20.19.2+dfsg-1 | vulnerable | |
| trixie (security) | 20.19.2+dfsg-1+deb13u2 | fixed | |
| forky, sid | 22.22.2+dfsg+~cs22.19.15-1 | fixed |
The information below is based on the following data on fixed versions.
| Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
|---|---|---|---|---|---|---|
| nodejs | source | trixie | 20.19.2+dfsg-1+deb13u2 | DSA-6183-1 | ||
| nodejs | source | (unstable) | 22.22.2+dfsg+~cs22.19.15-1 |
https://nodejs.org/en/blog/vulnerability/december-2025-security-releases#tls-pskalpn-callback-exceptions-bypass-error-handlers-causing-dos-and-fd-leak-cve-2026-21637---medium
Fixed by: https://github.com/nodejs/node/commit/85f73e7057e9badf6e7713f7440769375cdb5df5 (v20.20.0)
Fix was incomplete (but did not got a new CVE for the incomplete fix, original fix in unstable
Followup fix: https://github.com/nodejs/node/commit/cc3f294507c715908b2b31a5301e295b3de04152 (v20.20.2)
via nodejs/22.22.0+dfsg+~cs22.19.6-1 and DSA-6166-1)
https://nodejs.org/en/blog/vulnerability/march-2026-security-releases#incomplete-fix-for-cve-2026-21637-loadsni-in-_tls_wrapjs-lacks-trycatch-leading-to-remote-dos-cve-2026-21637---high