Impact
In the undici HTTP client library for Node.js, the Agent dispatcher internally deep‑clones its constructor options through JSON serialization before handing them off to per‑origin pools. The JSON process cannot represent function values, so a tls option that includes a custom checkServerIdentity callback is silently stripped. Consequently, when an application supplies a custom verification function to enforce certificate or public‑key pinning, that function is lost and the TLS layer performs only Node's default hostname and chain checks. As a result, a malicious TLS peer that would normally be rejected by the custom callback can be accepted, exposing the application to a man‑in‑the‑middle attack and loss of confidentiality and integrity.
Affected Systems
Affected products are the undici library for Node.js. Vulnerable versions include 4.0.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1. The issue was fixed in undici 6.29.1, 7.30.1, and 8.12.2, which preserve the tls option outside the JSON clone so custom verification callbacks are forwarded unchanged. Applications that use proxy agents or only pass function‑valued tls options are at risk.
Risk and Exploitability
The vulnerability carries a CVSS score of 7.4, indicating high severity. Exploitation is possible when an attacker can influence the TLS handshake, for example by impersonating a server or via a proxy. Because the EPSS score is not available and the vulnerability is not listed in CISA's KEV catalog, current exploit probability appears low, but the potential impact warrants immediate attention. The primary attack vector is remote TLS connection handling, relying on user‑supplied callback functions that are discarded during option cloning.
OpenCVE Enrichment