CVE-2026-123867

Public on 2026-11-11
Modified on 2026-11-11
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.
Severity
Medium severity
Medium
See what this means
CVSS v3 Base Score
4.2
See breakdown

Affected Packages

Platform Package Release Date Advisory Status
Amazon Linux 2023 nodejs No Fix Planned
Amazon Linux 2023 nodejs20 No Fix Planned
Amazon Linux 2023 nodejs22 Pending Fix
Amazon Linux 2023 nodejs24 Pending Fix
Amazon Linux 2027 Preview nodejs24 Pending Fix

CVSS Scores

Score Type Score Vector
Amazon Linux CVSSv3 4.2 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N