Certificate validation bypass in undici Agent drops custom TLS checks
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Spoofing
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Partial Red Hat: 4 fixed, 15 without a fix
Attack profile from CVSS 3.1 · NVD. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-295.
Summary
undici versions from 4.0.0 before 6.29.1, from 7.0.0 before 7.30.1 and from 8.0.0 before 8.12.2 are affected. The Agent dispatcher's JSON deep clone silently drops function-valued tls options such as checkServerIdentity, which causes improper certificate validation (CWE-295). A remote TLS peer with a certificate that passes Node's default checks but that a custom checkServerIdentity would reject is silently accepted, and only applications that pass such callbacks for certificate or public-key pinning are at risk.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
undici is an HTTP client library for Node.js. In versions 4.0.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its Agent dispatcher passes its constructor options through a JSON-based deep clone before forwarding them to each per-origin pool, and because JSON cannot represent functions, a caller-supplied tls option containing a checkServerIdentity callback 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. Because Agent is the default dispatcher behind request, fetch, and setGlobalDispatcher, this affects the path most applications use, and EnvHttpProxyAgent is affected on its direct and no-proxy routes as well, while only applications that pass a function-valued tls option such as a custom checkServerIdentity for certificate or public-key pinning are at risk. The issue is 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, and users should upgrade to one of those versions or later. As a workaround, pass the TLS options through connect instead of tls, or for proxied destinations use requestTls and proxyTls.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| NodeJS | undici | 4.0.0 to before 6.29.1; 7.0.0 to before 7.30.1; 8.0.0 to before 8.12.2 | 6.29.1, 7.30.1, 8.12.2 | Patch available | CNA |
| — | undici (npm) | 4.0.0 to before 6.29.1 | 6.29.1 | Patch available | GHSA-2m5v-pch6-74hx |
| — | undici (npm) | 7.0.0 to before 7.30.1 | 7.30.1 | Patch available | GHSA-2m5v-pch6-74hx |
| — | undici (npm) | 8.0.0 to before 8.12.2 | 8.12.2 | Patch available | GHSA-2m5v-pch6-74hx |
- undici VendorNodeJS Affected 4.0.0 to before 6.29.1; 7.0.0 to before 7.30.1; 8.0.0 to before 8.12.2 Fixed in 6.29.1, 7.30.1, 8.12.2 Patch available CNA
- undici (npm) Vendor— Affected 4.0.0 to before 6.29.1 Fixed in 6.29.1 Patch available GHSA-2m5v-pch6-74hx
- undici (npm) Vendor— Affected 7.0.0 to before 7.30.1 Fixed in 7.30.1 Patch available GHSA-2m5v-pch6-74hx
- undici (npm) Vendor— Affected 8.0.0 to before 8.12.2 Fixed in 8.12.2 Patch available GHSA-2m5v-pch6-74hx
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:* | 4.0.0 to before 6.29.1; 7.0.0 to before 7.30.1; 8.0.0 to before 8.12.2 | Vulnerable | NodeJS |
- cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:* Versions 4.0.0 to before 6.29.1; 7.0.0 to before 7.30.1; 8.0.0 to before 8.12.2 Vulnerable ·NodeJS
Remediation
Upgrade undici to 6.29.1, 7.30.1 or 8.12.2 or later. Red Hat advisories RHSA-2026:95591, RHSA-2026:95124, RHSA-2026:95081, RHSA-2026:92510, RHSA-2026:87703, RHSA-2026:84706 and RHSA-2026:84657 cover the fix. The sources list no fixed version for Red Hat Enterprise Linux 8, 9 and 10, and no fix planned for Secrets Management Console for Red Hat OpenShift. As a workaround, pass TLS options through connect instead of tls.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA undici (undici) Fixed in 6.29.1, 7.30.1, 8.12.2
- Fix · GHSA-2m5v-pch6-74hx undici (npm) Fixed in 6.29.1 Advisory →
- Fix · GHSA-2m5v-pch6-74hx undici (npm) Fixed in 7.30.1 Advisory →
- Fix · GHSA-2m5v-pch6-74hx undici (npm) Fixed in 8.12.2 Advisory →
Red Hat 7 advisories
- RHSA-2026:95591 Released 2026-11-05 · Red Hat rating ImportantCluster Observability Operator - 1.5
- Cluster Observability Operator 1.5 registry.redhat.io/cluster-observability-operator/alertmanager-rhel9, registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator, registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9 +16
- RHSA-2026:95124 Released 2026-11-04 · Red Hat rating ImportantRHTAS 1.5.1 - Red Hat Trusted Artifact Signer Release
- Red Hat Trusted Artifact Signer 1.5 registry.redhat.io/rhtas/rhtas-console-rhel9, registry.redhat.io/rhtas/rhtas-console-ui-rhel9
- RHSA-2026:95081 Released 2026-11-04 · Red Hat rating ImportantCluster Observability Operator - 1.5
- Cluster Observability Operator 1.5 registry.redhat.io/cluster-observability-operator/alertmanager-rhel9, registry.redhat.io/cluster-observability-operator/cluster-observability-rhel9-operator, registry.redhat.io/cluster-observability-operator/distributed-tracing-console-plugin-pf4-rhel9 +16
Show 4 more Red Hat advisories
- RHSA-2026:92510 Released 2026-10-29 · Red Hat rating CriticalRHOAI 3.4.6 - Red Hat OpenShift AI
- Red Hat OpenShift AI 3.4 registry.redhat.io/rhoai/odh-built-in-detector-rhel9, registry.redhat.io/rhoai/odh-cli-rhel9, registry.redhat.io/rhoai/odh-dashboard-rhel9 +47
- RHSA-2026:87703 Released 2026-10-22 · Red Hat rating ImportantRed Hat Hardened Images RPMs bug fix and enhancement update
- Red Hat Hardened Images nodejs26-1:26.12.1-0.1.hum1@aarch64, nodejs26-1:26.12.1-0.1.hum1@s390x, nodejs26-1:26.12.1-0.1.hum1@src +22
- RHSA-2026:84706 Released 2026-10-19 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images nodejs24-24.21.0-1.5.hum1@aarch64, nodejs24-24.21.0-1.5.hum1@s390x, nodejs24-24.21.0-1.5.hum1@src +25
- RHSA-2026:84657 Released 2026-10-19 · Red Hat rating ImportantRed Hat Hardened Images RPMs Security Update
- Red Hat Hardened Images nodejs26-26.11.1-0.4.hum1@aarch64, nodejs26-26.11.1-0.4.hum1@s390x, nodejs26-26.11.1-0.4.hum1@src +25
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
undici 6.29.1, 7.30.1, 8.12.2
5 records Highest priority Priority MEDIUM 1 MEDIUM, 4 LOW
Other records, highest priority first
- TI-2026-74890 Unhandled error in undici fetch() crashes Node.js processPriority LOW 39
- TI-2026-74992 Denial of service in undici via TLS renegotiationPriority LOW 38
- TI-2026-74894 Undici WebSocket client exhausts memory via unbounded PONG bufferingPriority LOW 33
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Exploit Intelligence | Affected | No fix yet |
| Red Hat AMQ Broker 7 | Affected | No fix yet |
| Red Hat Build of Podman Desktop | Affected | No fix yet |
| Red Hat Developer Hub 1 | Affected | No fix yet |
| Red Hat Enterprise Linux 10 | Affected | No fix yet |
| Red Hat Enterprise Linux 8 | Affected | No fix yet |
| Red Hat Enterprise Linux 9 | Affected | No fix yet |
| Red Hat Hardened Images | Affected | No fix planned: Will not fix |
| Red Hat OpenShift AI (RHOAI) | Affected | No fix yet |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet |
| Red Hat OpenShift Dev Spaces | Affected | No fix yet |
| Red Hat Openshift Data Foundation 4 | Affected | No fix yet |
| Secrets Management Console for Red Hat OpenShift | Affected | No fix planned: Will not fix |
| Self-service automation portal 2 | Affected | No fix yet |
| Cluster Observability Operator 1.5 | Fixed | RHSA-2026:95081, RHSA-2026:95591 |
| Red Hat Hardened Images | Fixed | RHSA-2026:84657, RHSA-2026:84706, RHSA-2026:87703 |
| Red Hat OpenShift AI 3.4 | Fixed | RHSA-2026:92510 |
| Red Hat Trusted Artifact Signer 1.5 | Fixed | RHSA-2026:95124 |
Not affected: 9 products
- Cluster Observability Operator 1.5
- Cryostat 4
- Red Hat AMQ Broker 7
- Red Hat Ansible Automation Platform 2
- Red Hat Enterprise Linux 10
- Red Hat Hardened Images
- Red Hat OpenShift AI 3.4
- Red Hat OpenShift Container Platform 4
- Red Hat Trusted Artifact Signer 1.5
Timeline
- 2026-10-16 Threatist record created from CVE-2026-109383
- 2026-10-16 Priority changed: MEDIUM → LOW
- 2026-10-16 Affected versions changed · Red Hat
- 2026-10-16 CVSS score added · Red Hat
- 2026-10-18 CISA SSVC decision points changed
- 2026-10-18 Affected versions changed · Red Hat
- 2026-10-19 Fix available: RHSA-2026:84657 · Red Hat
- 2026-10-19 Fix available: RHSA-2026:84706 · Red Hat
- 2026-10-20 CVSS score added · NVD
- 2026-10-20 Priority changed: LOW → MEDIUM
- 2026-10-20 Fix available: Red Hat Hardened Images · Red Hat
- 2026-10-22 Fix available: RHSA-2026:87703 · Red Hat
- 2026-10-23 Affected versions changed · Red Hat
- 2026-10-27 Affected versions changed · Red Hat
- 2026-10-27 Alias added: GHSA-2m5v-pch6-74hx
- 2026-10-30 Fix available: RHSA-2026:92510 · Red Hat
- 2026-10-30 Fix available: Red Hat OpenShift AI 3.4 · Red Hat
- 2026-10-30 Affected versions changed · Red Hat
- 2026-11-03 Affected versions changed · Red Hat
- 2026-11-04 Fix available: RHSA-2026:95081 · Red Hat
- 2026-11-04 Fix available: RHSA-2026:95124 · Red Hat
- 2026-11-04 Fix available: Cluster Observability Operator 1.5, Red Hat Trusted Artifact Signer 1.5 · Red Hat
- 2026-11-06 Affected versions changed · Red Hat
- 2026-11-06 Fix available: RHSA-2026:95591 · Red Hat
References
Advisory 3
Other 7
- https://github.com/nodejs/undici/commit/04cb74b1db131ff8f5b4557dce811cbf5f4664b4
- https://github.com/nodejs/undici/commit/8c59f6b302898cb2e9b0f7962cd7212b6e597c9f
- https://github.com/nodejs/undici/commit/f75eac00ac177f7b2e6c8bfbd52d4113164286e6
- https://github.com/nodejs/undici
- https://github.com/nodejs/undici/releases/tag/v6.29.1
- https://github.com/nodejs/undici/releases/tag/v7.30.1
- https://github.com/nodejs/undici/releases/tag/v8.12.2
More NodeJS Undici vulnerabilities
- TI-2026-01215 undici is vulnerable to Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling') CVSS 3.1CRITICAL 9.8
- TI-2022-16376 `undici.request` vulnerable to SSRF using absolute URL on `pathname` CVSS 3.1CRITICAL 9.8
- TI-2023-09734 CRLF Injection in Nodejs ‘undici’ via host CVSS 3.1MEDIUM 6.5
- TI-2022-13193 CRLF injection in request headers CVSS 3.1MEDIUM 6.5
- TI-2022-16375 CRLF Injection in Nodejs ‘undici’ via Content-Type CVSS 3.1MEDIUM 5.3
- TI-2022-13194 Uncleared cookies on cross-host/cross-origin redirect in undici CVSS 3.1MEDIUM 6.5
Sources
- CVE-2026-109383 · CVE Program
- CVE-2026-109383 · NVD
- FIRST EPSS
- GHSA-2m5v-pch6-74hx · GitHub Advisory Database · CC BY 4.0
- CVE-2026-109383 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences