CVE-2026-21637·Node.js vulnerability
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.
- Severity
- high
- Software
- Node.js
- Fixed in
- 25.3.0
- Published
- 2026-01-20
Affected versions
From: 25.0.0
Until: 25.3.0
Fixed in: 25.3.0
How to fix this CVE
Update Node.js to version 25.3.0 or later to patch the TLS callback exception handling flaw. This vulnerability allows remote attackers to trigger denial of service through crafted TLS handshakes when PSK or ALPN callbacks are enabled. Apply the update immediately across all affected servers running versions 25.0.0 through 25.2.x.
sudo dnf update nodejsDefensia detects this vulnerability
What an exploitation attempt looks like
Sample log line indicative of exploitation attempts:
Multiple rapid TLS handshake attempts with malformed or exception-triggering ALPN/PSK extension data followed by server process termination or connection resets without graceful error responses.How to check if you are affected
- Step 1: Run `node --version` to check the currently installed Node.js version. Versions 25.0.0 to 25.2.x are vulnerable.
- Step 2: Identify TLS servers in your environment by searching for `pskCallback` or `ALPNCallback` configuration in application source code or Node.js process arguments using `ps aux | grep node`.
- Step 3: Monitor system logs and Node.js error logs for sudden process crashes or repeated error patterns during TLS handshakes; look for EBADF (bad file descriptor) errors or abrupt process terminations without stack traces.
- Step 4: After updating to version 25.3.0+, verify with `node --version` and restart all Node.js services to ensure the patched version is active.
FAQ
What is CVE-2026-21637?
CVE-2026-21637 is a TLS error handling vulnerability in Node.js that allows remote attackers to crash or exhaust server resources by triggering unhandled exceptions in PSK or ALPN callbacks during the TLS handshake phase.
Is CVE-2026-21637 being actively exploited?
No, this vulnerability is not currently listed on the CISA KEV catalog and no public exploits are available, though the attack requires minimal complexity and could be weaponized by unauthenticated remote clients.
What versions of Node.js are affected by CVE-2026-21637?
Node.js versions 25.0.0 through 25.2.x are vulnerable. Version 25.3.0 and later contain the fix.
How do I check if my server is vulnerable to CVE-2026-21637?
Run `node --version` and compare against version 25.3.0. If your version is between 25.0.0 and 25.2.x inclusive, and your application uses TLS with PSK or ALPN callbacks, your server is vulnerable.
Does Defensia detect CVE-2026-21637?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Node.js is installed on a monitored server, CVE-2026-21637 will appear in your dashboard with remediation steps.
Related Node.js CVEs
References
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-21637. Free for 1 server.
Get started free