Security advisory
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-21637
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 11:14 UTC · Revision 1
Source evidence
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.
osv:CVE-2026-21637
Complete source record
{
"id": "dda4ca35edc422145efadea61f2d85e2f8f47d400151fa3034e4b913312fb39e",
"url": "https://osv.dev/vulnerability/CVE-2026-21637",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2026-21637",
"summary": "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.",
"evidence": "osv:CVE-2026-21637",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-21637",
"aliases": [
"BIT-node-2026-21637",
"BIT-node-min-2026-21637",
"CVE-2026-21637"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/nodejs/node",
"type": "GIT",
"events": [
{
"introduced": "f9f837885343a2a3f5ba2b8c510eaac395c8c865"
},
{
"fixed": "1f7186e1e01d279022cab6acdecb119e472bb409"
},
{
"introduced": "12fb157f79da8c094a54bc99370994941c28c235"
},
{
"fixed": "6add85e4c46b8be383c8b637102d6b6fd206adce"
},
{
"introduced": "c5349f43cd66d2aa02d86414c9ed426f71d3ae48"
},
{
"fixed": "def0bdf8abee441cfcbf793a8dc24a6f3b899573"
},
{
"introduced": "0b3a10d4c8ba5e15429287e725d22615be896e95"
},
{
"fixed": "00d6cd83927d6d5c8fe9d0cdd101daa6df4b1a15"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"range": [
{
"introduced": "4.0.0"
},
{
"fixed": "20.20.0"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"range": [
{
"introduced": "22.0.0"
},
{
"fixed": "22.22.0"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"range": [
{
"introduced": "24.0.0"
},
{
"fixed": "24.13.0"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
"range": [
{
"introduced": "25.0.0"
},
{
"fixed": "25.3.0"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v24.12.0",
"v25.2.1",
"v25.2.0",
"v24.11.1",
"v25.1.0",
"v22.21.1",
"v24.11.0",
"v22.21.0",
"v25.0.0",
"v24.10.0",
"v24.9.0",
"v22.20.0",
"v24.8.0",
"v22.19.0",
"v24.7.0",
"v24.6.0",
"v24.5.0",
"v22.18.0",
"v22.17.1",
"v24.4.1",
"v24.4.0",
"v22.17.0",
"v24.3.0",
"v24.2.0",
"v24.1.0",
"v22.16.0",
"v24.0.2",
"v22.15.1",
"v24.0.1",
"v24.0.0",
"v22.15.0",
"v22.14.0",
"v22.13.1",
"v22.13.0",
"v22.12.0",
"v22.11.0",
"v22.10.0",
"v22.9.0",
"v22.8.0",
"v22.7.0",
"v22.6.0",
"v22.5.1",
"v22.5.0",
"v22.4.1",
"v22.4.0",
"v22.3.0",
"v22.2.0",
"v22.1.0",
"v22.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-21637.json"
}
}
],
"modified": "2026-10-28T02:30:34.429159703Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/21xxx/CVE-2026-21637.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-21637",
"https://nodejs.org/en/blog/vulnerability/december-2025-security-releases"
],
"provider_metadata": {
"cna_assigner": "hackerone",
"unresolved_ranges": [
{
"extracted_events": [
{
"range": [
{
"introduced": "20.19.6"
},
{
"last_affected": "20.19.6"
},
{
"introduced": "22.21.1"
},
{
"last_affected": "22.21.1"
},
{
"introduced": "24.12.0"
},
{
"last_affected": "24.12.0"
},
{
"introduced": "25.2.1"
},
{
"last_affected": "25.2.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandaloneSingleVersion"
}
]
},
{
"extracted_events": [
{
"range": [
{
"introduced": "4.0"
},
{
"fixed": "4.*"
},
{
"introduced": "5.0"
},
{
"fixed": "5.*"
},
{
"introduced": "6.0"
},
{
"fixed": "6.*"
},
{
"introduced": "7.0"
},
{
"fixed": "7.*"
},
{
"introduced": "8.0"
},
{
"fixed": "8.*"
},
{
"introduced": "9.0"
},
{
"fixed": "9.*"
},
{
"introduced": "10.0"
},
{
"fixed": "10.*"
},
{
"introduced": "11.0"
},
{
"fixed": "11.*"
},
{
"introduced": "12.0"
},
{
"fixed": "12.*"
},
{
"introduced": "13.0"
},
{
"fixed": "13.*"
},
{
"introduced": "14.0"
},
{
"fixed": "14.*"
},
{
"introduced": "15.0"
},
{
"fixed": "15.*"
},
{
"introduced": "16.0"
},
{
"fixed": "16.*"
},
{
"introduced": "17.0"
},
{
"fixed": "17.*"
},
{
"introduced": "18.0"
},
{
"fixed": "18.*"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/21xxx/CVE-2026-21637.json"
}
},
"related_cves": [
{
"value": "CVE-2026-21637",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 501977,
"published_at": "2026-01-20T20:41:55.352+00:00"
}