NODE · CVE-2026-123872 · Runtime
FIX → 26.13.1 · 24.22.3 · 22.23.5 ✓ verified
Node.js TLS lets a client switch the servername during a TLS 1.2 renegotiation, so an authenticated connection can reach a host with stricter client-certificate rules. An attacker gets access to endpoints it was not authorized for.
first public Nov 3, 2026 · 2 sources
Could this affect your app?
Free first check from your website. Connect your repo for the full answer.
Node.js 22.x, 24.x and 26.x servers that use mutual TLS with different client-certificate policies per hostname (for example an admin-only host and an ordinary host on one listener). A client authenticated for the permitted host can renegotiate under another servername over TLS 1.2 and carry its authentication to the stricter host. Servers with a single client-cert policy or no client certificates can skip it.
Not affected if no-client-certs, single-policy, tls-1.3-only
Who cares mutual-tls, node.js, self-hosted, tls
Upgrade to 26.13.1 · 24.22.3 · 22.23.5
A client certificate authentication bypass in Node.js TLS lets a client change the servername during TLS 1.2 renegotiation to reach endpoints it was not authorized for. On a server that applies different client-certificate policies per hostname, for example stricter admin-only client-cert auth on one host and ordinary client-cert auth on another, a client that authenticates for a permitted host can renegotiate the TLS 1.2 connection under a different servername and carry its existing authentication to the protected host, bypassing the stricter policy. This vulnerability affects Node.js 26.x, 24.x, and 22.x.
This page as .md · .json · CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
. Posts quoted belong to their authors.
Check it with your coding agent
It reads this page and tells you if your code is affected.
Are you affected?
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
22.23.5 (22.x), 24.22.3 (24.x) or 26.13.1 (26.x)24.22.3 release notes, the fix stops TLS renegotiation and HelloRetryRequest from changing the SNI, and stops TLS resumption from changing it