CVE-2026-123867: Node.js mutual-TLS authorization bypass via CA-only SNI context

CVE-2026-123867 · Severity: medium · CVSS 4.2 · Published 2026-11-11

Node.js is a runtime environment for building server applications. This vulnerability allows a client that holds a certificate trusted by the default certificate authority to bypass mutual TLS authorization and access hostnames protected by a different certificate authority. An attacker with a valid default certificate could read responses intended only for clients with specific per-host certificates.

Technologies: OpenJS Foundation Node.js. Vendors: OpenJS Foundation.

Quick answers

Is CVE-2026-123867 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-123867 being exploited in the wild.
How severe is CVE-2026-123867?
Medium severity, with a CVSS score of 4.2, published 11 November 2026.
Which products and versions are affected?
OpenJS Foundation Node.js 22.x, 24.x, 26.x.
Is there a fix for CVE-2026-123867?
No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.
How is CVE-2026-123867 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-123867?
Check whether you run OpenJS Foundation Node.js at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

A per-host mutual-TLS authorization bypass occurs in Node.js when a TLS server configures a CA-only SNI context via server.addContext(host, { ca: protectedCA }) without a server certificate. The CertCbDone function in src/crypto/crypto_tls.cc installs the SNI context's CA only when setSniContext succeeds, but setSniContext returns false for contexts lacking a server certificate, causing the handshake to silently fall back to the default CA. A client holding a certificate trusted by the default CA but not the protected CA can complete mTLS to the protected hostname and read its response, bypassing requestCert and rejectUnauthorized protections.

Affected products

  • OpenJS Foundation Node.js 22.x, 24.x, 26.x

Timeline

  • 2026-11-11: disclosed
  • 2026-11-11: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.