All vulnerabilities

Servers and applications

CVE-2026-123867

Node.js is vulnerable to a per-host mTLS authorization bypass via a CA-only SNI context failing open to the default CA

Severity
Medium 4.2
Published
11 Nov 2026
Last changed
11 Nov 2026
Added to UpHeron
11 Nov 2026
Fixed in
22.23.5, 24.22.3, 26.13.1
Weakness
Improper certificate validation (CWE-295)
Attack
Over the network · Only under certain conditions · Needs a user account · No user action needed
Attacker can
Read some data · Change some data
CVSS vector
CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
Sources
CVE Program

Description

A per-host mutual-TLS authorization bypass in Node.js lets a client authorized for the default hostname reach a protected hostname it is not authorized for. When a TLS server assigns a hostname a different client-certificate CA with server.addContext(host, { ca: protectedCA }) but no server certificate in that SNI context, the per-host client CA is never installed and the handshake falls back to the default client CA. In src/crypto/crypto_tls.cc, CertCbDone installs the SNI context's CA only when setSniContext succeeds, but setSniContext returns false for a context with no server certificate, so a CA-only SNI context silently keeps the default CA. A client holding a certificate trusted by the default CA, but not the protected CA, can therefore complete mTLS to the protected hostname and read its response even with requestCert and rejectUnauthorized enabled, while a client certified by the protected CA is rejected. This vulnerability affects Node.js 26.x, 24.x, and 22.x.

From the CVE Program.

Affected software

SoftwareAffected versions
Node.jsServers and applications · cna:nodejs|node
  • From 0.0.0 before 22.23.5
  • From 23.0.0 before 24.22.3
  • From 25.0.0 before 26.13.1

References

  • CVE.org https://www.cve.org/CVERecord?id=CVE-2026-123867