node · Vulnerability
cve-program · CVE-2026-123867
PublishedA 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.
Read the publisher's advisoryAffected versions, risk and source history
Related advisories and sources
Publishers link these advisories through the identifiers shown below. A shared identifier or date alone does not tell you whether your software is affected or whether the advisories describe the same cause.
CVE-2026-123867 · CVE overview and exploitation status
cve-program · CVE-2026-123867
Related changes
Linked by CVE identifier- Node.js is vulnerable to a per-host mTLS authorization bypass via a CA-only SNI context failing open to the default CA · Affected-version evidence changed · 12 Nov 2026
- Node.js is vulnerable to a per-host mTLS authorization bypass via a CA-only SNI context failing open to the default CA · Newly collected advisory · 11 Nov 2026
- Wednesday, November 11, 2026 Security Releases · Security advisory · 11 Nov 2026