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

Source: https://junglewise.ai/threats/cve-2026-123867-a-per-host-mutual-tls-authorization-bypass-in-node-js-lets-a  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-11. Updated: 2026-11-11  
License: CC BY 4.0 with a link back

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](https://junglewise.ai/threats/technologies/openjs-foundation-node-js). Vendors: [OpenJS Foundation](https://junglewise.ai/threats/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

- [https://cna.openjsf.org/security-advisories.html](https://cna.openjsf.org/security-advisories.html)
- [https://nodejs.org/en/blog/vulnerability/november-2026-security-releases](https://nodejs.org/en/blog/vulnerability/november-2026-security-releases)

## Related threats

- [Node.js TLS server use-after-destroy in deferred handshake callbacks](https://junglewise.ai/threats/cve-2026-126051-a-deferred-callback-use-after-destroy-in-node-js-tls-server)
- [Node.js https.Agent certificate validation bypass via TLS session reuse](https://junglewise.ai/threats/cve-2026-123877-a-certificate-validation-bypass-in-node-js-https-agent-lets-a)
- [Node.js HTTP/2 denial of service via NULL pointer dereference](https://junglewise.ai/threats/cve-2026-123875-a-null-pointer-dereference-in-node-js-http-2-lets-an)
- [Node.js HTTP/2 use-after-free in respondWithFile stream reset](https://junglewise.ai/threats/cve-2026-123874-a-use-after-free-in-node-js-http-2-lets-an-unauthenticated)
- [Node.js client certificate auth bypass via TLS 1.2 renegotiation servername change](https://junglewise.ai/threats/cve-2026-123872-a-client-certificate-authentication-bypass-in-node-js-tls-lets-a)
