CVE-2026-21637: Incomplete fix for CVE-2026-21637: loadSNI() in _tls_wrap.js lacks try/catch leading to Remote DoS

Published Jan 13, 2026
·
Updated

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.

Other sources

A flaw in Node.js TLS error handling leaves SNICallback invocations unprotected against synchronous exceptions, while the equivalent ALPN and PSK callbacks were already addressed in CVE-2026-21637. This represents an incomplete fix of that prior vulnerability.

When an SNICallback throws synchronously on unexpected input the exception bypasses TLS error handlers and propagates as an uncaught exception, crashing the Node.js process.

This vulnerability affects all Node.js versions that received the CVE-2026-21637 fix, including 20.x, 22.x, 24.x, and 25.x, on any TLS server where SNICallback may throw on unexpected servername input.

— Node.Js

A flaw in Node.js TLS error handling leaves SNICallback invocations unprotected against synchronous exceptions, while the equivalent ALPN and PSK callbacks were already addressed in CVE-2026-21637. This represents an incomplete fix of that prior vulnerability.

When an SNICallback throws synchronously on unexpected input the exception bypasses TLS error handlers and propagates as an uncaught exception, crashing the Node.js process.

— Node.Js

CVE-2026-21637 is regarding a vulnerability 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. HackerOne created this CVE on their behalf. The documented Visual Studio updates incorporate updates in Node.js which address this vulnerability. Please see CVE-2026-21637 for more information.

— Microsoft

HackerOne: CVE-2026-21637 TLS PSK/ALPN Callback Exceptions Bypass Error Handlers

— Microsoft

Affected Software

17 affected componentsFixes available
nodejs/node
Nodejs Node.js>=4.0.0<20.20.0
Nodejs Node.js>=22.0.0<22.22.0
Nodejs Node.js>=24.0.0<24.13.0
Nodejs Node.js>=25.0.0<25.3.0
Microsoft Visual Studio 2022=17.14
Microsoft Visual Studio 2022=17.12
Microsoft Visual Studio 2019 (includes 16.0 - 16.10)=16.11
Node.js Node.js>=20.0.0<20.20.2, >=22.0.0<22.22.2, >=24.0.0<24.14.1, >=25.0.0<25.8.2
20.20.222.22.224.14.125.8.2
Node.js Node.js>=20.0.0<20.20.2
20.20.2
Node.js Node.js>=20.0.0<20.20.0
20.20.0
Node.js Node.js>=22.0.0<22.22.2
22.22.2
Node.js Node.js>=22.0.0<22.22.0
22.22.0
Node.js Node.js>=24.0.0<24.13.0
24.13.0
Node.js Node.js>=24.0.0<24.14.1
24.14.1
Node.js Node.js>=25.0.0<25.3.0
25.3.0
Node.js Node.js>=25.0.0<25.8.2
25.8.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 20.20.2Fixed in 22.22.2Fixed in 24.14.1Fixed in 25.8.2
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 20.20.2
  3. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 20.20.0
  4. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 22.22.2
  5. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 22.22.0
  6. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 24.13.0
  7. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 24.14.1
  8. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 25.3.0
  9. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 25.8.2

Event History

Jan 13, 2026
CVE Published
via Node.js·01:56 PM
Data Sourced
via Node.js·01:56 PM
SeverityAffected Software
Jan 20, 2026
CVE Published
via MITRE·08:41 PM
Data Sourced
via MITRE·08:41 PM
DescriptionSeverity
Data Sourced
via Red Hat·09:01 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·09:16 PM
DescriptionSeverityWeaknessAffected Software
Mar 24, 2026
Data Sourced
via Node.js·03:00 AM
Description
Apr 14, 2026
Data Sourced
via Microsoft·02:00 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-21637?

CVE-2026-21637 is considered a high severity vulnerability due to its potential to crash or exhaust resources of a TLS server.

2

How do I fix CVE-2026-21637?

To fix CVE-2026-21637, upgrade your Node.js version to the latest release that addresses this vulnerability.

3

What are the attack vectors for CVE-2026-21637?

Remote attackers can exploit CVE-2026-21637 through callbacks like `pskCallback` or `ALPNCallback` during TLS operations.

4

Which versions of Node.js are affected by CVE-2026-21637?

CVE-2026-21637 affects specific versions of Node.js, particularly those that utilize the faulty TLS error handling mechanisms during the specified callbacks.

5

What kind of impact does CVE-2026-21637 have on a TLS server?

CVE-2026-21637 can lead to denial of service by crashing the server or exhausting its resources due to unhandled exceptions.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203