PT-2026-145389

CVE-2026-123867

·

Published

2026-11-11

·

Updated

2026-11-11

Description by

CVSS 3.1
4.2
Medium
MetricsAV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
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.
Exploitability
Fix
Impacts
Vendors
Affected products
Related identifiers
Found an issue in the description? Have something to add? Feel free to write us 👾