External risk intelligence

Undici HTTP Client Accepts Invalid TLS Certificates

CVE advisorySeverity: CRITICAL (CVSS 9.1)

CVE-2026-109383

The vulnerability affects an HTTP client library used in Node.js applications. While the library is widely used to make outbound connections, the specific flaw only manifests when applications implement custom certificate validation logic using checkServerIdentity callbacks. Exposure depends on the application's specific implementation of TLS verification, which is not universal, making public internet reachability plausible but not inherent.

Halo Surface Signal: 3 out of 5 — possibly public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory details a critical vulnerability in the undici HTTP client library for Node.js. The issue could allow an attacker to bypass custom server identity checks, potentially leading to connections to untrusted servers if specific, advanced TLS verification configurations are in place. The core concern is the silent dropping of custom security callbacks during certificate validation.

  • Undici library fails custom server certificate checks.
  • Affects custom TLS verification in Node.js apps.
  • Confirm if custom certificate checks are used.

Attack Path

How an attacker could exploit the issue

An attacker could exploit this vulnerability by presenting a malicious TLS certificate to a Node.js application using the undici HTTP client library. If the application has implemented a custom `checkServerIdentity` function for certificate validation that relies on `JSON.parse` to process TLS options, this function could be silently dropped. This allows the attacker's certificate, which might fail custom checks but pass Node.js's default checks, to be accepted, potentially leading to man-in-the-middle attacks.

  • Requires custom TLS verification callback.
  • Attacker presents a certificate.
  • Bypasses custom certificate checks.

Live Threat

Current exploitation, exposure, and threat context

When supported by the advisory, a custom TLS certificate verification callback could be bypassed, allowing an attacker to impersonate a legitimate server. This is a risk for applications that use a custom `checkServerIdentity` function for certificate pinning or other advanced verification needs, as the callback might be silently dropped by the `undici` library's cloning process. The Node.js `Agent` is the default dispatcher for common functions like `request` and `fetch`, increasing the potential reach of this vulnerability.

  • Custom TLS verification logic.
  • Callbacks are silently dropped.
  • Unwanted TLS connections may occur.

Operational Fix

Recommended remediation, mitigation, and detection steps

This vulnerability in the Node.js undici HTTP client library requires action from teams responsible for Node.js application development and security. The first practical step is to identify all Node.js applications utilizing undici, determine if they perform custom TLS certificate verification, and then plan remediation based on the risk of unverified TLS peers.

  • Application owners must own this issue.
  • Verify custom certificate validation logic.
  • Upgrade undici or implement workarounds.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is the undici library used for in Node.js?

Undici is a core HTTP client library for the Node.js runtime. It serves as the underlying engine for standard networking functions like fetch and request. Developers use it to manage how their applications send requests to external servers, including handling connection pooling and TLS configurations for secure communication.

What does CWE-295 mean for CVE-2026-109383?

CWE-295 is the classification for improper certificate validation. In this CVE, the library fails to properly pass custom verification logic to the TLS layer. Because the software silently drops specific security callbacks, it may accept connections that your custom code was intended to block, even if the connection appears valid to standard system checks.

Does every application using undici trigger this flaw?

No. The vulnerability only triggers if your application uses a specific, advanced configuration: a custom checkServerIdentity callback for TLS validation. If your application relies solely on default Node.js hostname and certificate chain verification without these custom function-valued options, the bug is not triggered.

Why should I care if my service is internet-facing?

According to Halo Surface Signal, the risk is 'Possible' because this library is widely used for outbound traffic. If your service connects to external servers and relies on custom pinning or identity checks, an attacker could potentially impersonate a server you intend to block. Your exposure depends entirely on your specific implementation of TLS verification.

How do I start addressing this issue?

Begin by auditing your codebase to identify where undici is utilized. Specifically, check if you have implemented custom certificate validation or server identity callbacks within your TLS options. If you find these custom controls, plan to update to a patched version of undici or implement the suggested workarounds to ensure your security logic is correctly applied.

References