High

undici vulnerable to TLS certificate validation bypass via dropped connect options in BalancedPool

  • Disclosed: 29.09.2026
  • Updated: 11.10.2026 10:22

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.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
npm package undici >= 7.24.1, < 7.29.1, >= 8.0.0, < 8.10.2 7.29.1, 8.10.2

References

CVSS score 7.4/10
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Weakness (CWE)
CWE-295
Platform
npm
Package
undici
Disclosed
29.09.2026
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-w293-vg96-wgc3 - CC BY 4.0

Vulnerability history: undici

All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.

All (46) in the archive
Total entries
46
First → latest
06.2022 09.2026
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • High 13
  • Medium 21
  • Low 12

Disclosures per year

  1. 2022: 5
  2. 2023: 3
  3. 2024: 5
  4. 2025: 2
  5. 2026: 31
Severity:
  1. High · 7.5 CVE-2026-19534 >= 6.7.0, < 6.28.1, >= 7.0.0, < 7.29.1, >= 8.0.0, < 8.10.2 6.28.1, 7.29.1, 8.10.2
  2. undici vulnerable to TLS certificate validation bypass via dropped connect options in BalancedPool this entry
    High · 7.4 CVE-2026-84961 >= 7.24.1, < 7.29.1, >= 8.0.0, < 8.10.2 7.29.1, 8.10.2
  3. High · 7.4 CVE-2026-13697 >= 7.0.0, < 7.29.0, >= 8.0.0, < 8.9.0 7.29.0, 8.9.0
  4. High · 7.5 CVE-2026-12151 < 6.27.0, >= 7.0.0, < 7.28.0, >= 8.0.0, < 8.5.0 6.27.0, 7.28.0, 8.5.0
  5. High · 7.5 CVE-2026-6734 >= 7.23.0, < 7.28.0, >= 8.0.0, < 8.2.0 7.28.0, 8.2.0
  6. High · 7.4 CVE-2026-9697 >= 7.23.0, < 7.28.0, >= 8.0.0, < 8.5.0 7.28.0, 8.5.0
  7. High · 7.5 CVE-2026-1526 < 6.24.0, >= 7.0.0, < 7.24.0 6.24.0, 7.24.0
  8. High · 7.5 CVE-2026-2229 < 6.24.0, >= 7.0.0, < 7.24.0 6.24.0, 7.24.0
  9. High · 7.5 CVE-2026-1528 >= 6.0.0, < 6.24.0, >= 7.0.0, < 7.24.0 6.24.0, 7.24.0
  10. High · 7.5 CVE-2023-24807 < 5.19.1 5.19.1
  11. High · 7.7 CVE-2022-32210 >= 4.8.2, < 5.5.1 5.5.1

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.