Summary
undici vulnerable to TLS certificate validation bypass via dropped connect options in BalancedPool
Advisory details
Impact
undici's BalancedPool passes its constructor options through a JSON-based deep clone (JSON.parse(JSON.stringify(...))) before forwarding them to each per-upstream Pool. JSON cannot represent functions, so a caller-supplied connect or tls option containing a checkServerIdentity callback (or a custom connector function) is silently dropped before it reaches the TLS layer. As a result, a TLS peer whose certificate a custom checkServerIdentity was written to reject, but which passes Node's default hostname and chain checks, is silently accepted when the request is made through BalancedPool. Client, Pool, Agent, and RoundRobinPool destructure connect/tls before the clone and are not affected. Only applications that use BalancedPool with a function-valued connect/tls option (such as a custom checkServerIdentity or connector) are affected.
Patches
Upgrade to 7.29.1 or 8.10.2. BalancedPool now preserves the connect and tls options outside the JSON clone, so custom TLS verification callbacks are forwarded to each upstream unchanged.
Workarounds
Use Client, Pool, or Agent instead of BalancedPool for connections that rely on a custom checkServerIdentity or connector, until upgraded.
References
- https://github.com/advisories/GHSA-w293-vg96-wgc3
- https://github.com/nodejs/undici/security/advisories/GHSA-w293-vg96-wgc3
- https://nvd.nist.gov/vuln/detail/CVE-2026-84961
- https://github.com/nodejs/undici/commit/8f5868fbdbc8f1146dfc1bcd1f2d117790141390
- https://github.com/nodejs/undici/commit/f690157d728508652fef14673630c71515123e96
- https://cna.openjsf.org/security-advisories.html
- https://github.com/nodejs/undici/releases/tag/v7.29.1
- https://github.com/nodejs/undici/releases/tag/v8.10.2
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-96222
Microsoft Security Advisory CVE-2026-96222 - .NET Spoofing Vulnerability
- MEDIUMCVE-2026-70194
Microsoft Security Advisory CVE-2026-70194 - .NET and Visual Studio Security Feature Bypass Vulnerability
- CRITICALCVE-2026-105794
MsQuic: Improper Certificate Validation in Microsoft.Native.Quic.MsQuic.OpenSSL
- HIGHCVE-2026-103921
GraphQL Tools: TLS Certificate Validation Disabled in Legacy GraphQL WebSocket Executor
- HIGHCVE-2026-101916
@grpc/grpc-js: In certain configurations, getAuthContext can return unauthorized certificates as though they were authorized
- HIGHCVE-2026-97687
urllib3: HTTPS proxy TLS configuration may be ignored or overridden