CVE-2026-84961 json
undici vulnerable to TLS certificate validation bypass via dropped connect options in BalancedPool
published 2mo ago modified last mo. also EUVD-2026-71494 , GHSA-w293-vg96-wgc3
- cvss
- 7.4
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
undici's BalancedPool constructor passes its entire options object through an internal deep-clone that serializes and reparses the value as JSON. Because JSON cannot represent functions, any function-valued TLS option, such as a caller-supplied checkServerIdentity callback or a custom connector inside the connect option, is silently discarded before it reaches the TLS layer. As a result a peer whose certificate the application's custom checkServerIdentity was written to reject, but which still passes Node's default hostname and chain checks, is accepted when reached through BalancedPool. The Client, Pool, and Agent dispatchers are not affected because they extract the connect and tls options before cloning. This affects undici versions from 7.24.1 up to 7.29.1 and from 8.0.0 up to 8.10.2, and only when the application supplies a function-valued connect or tls option to BalancedPool. Users should upgrade to undici 7.29.1 or 8.10.2.
Patch / fix
- npm undici 7.29.1, 8.10.2
- undici undici 7.29.1, 8.10.2
- node-undici Debian 14 8.10.2+dfsg+~cs3.2.2-1
debian advisories DEBIAN-CVE-2026-84961
- npm RHEL 8 1:11.19.0-1.24.21.0.1.module+el8.10.0+24927+ed3d907a
- nodejs RHEL 8 1:24.21.0-1.module+el8.10.0+24927+ed3d907a
- nodejs-libs RHEL 8 1:24.21.0-1.module+el8.10.0+24927+ed3d907a
- nodejs-nodemon RHEL 8 3.1.14-2.module+el8.10.0+24711+b610b202
- nodejs-full-i18n RHEL 8 1:24.21.0-1.module+el8.10.0+24927+ed3d907a
- nodejs-packaging RHEL 8 2021.06-6.module+el8.10.0+24711+b610b202
- nodejs-packaging-bundler RHEL 8 2021.06-6.module+el8.10.0+24711+b610b202
- npm RHEL 9 1:11.19.0-1.24.21.0.1.module+el9.8.0+24924+cd677006
red hat advisories RHSA-2026:74085RHSA-2026:73838RHSA-2026:73428RHSA-2026:66605RHSA-2026:66008RHSA-2026:54438
- pi-coding-agent openSUSE Leap 16.0 1.0.4-bp160.1.1
- pi-coding-agent openSUSE Tumbleweed 0.87.1-1.1
opensuse advisories openSUSE-SU-2026:22111-1openSUSE-SU-2026:11884-1
- npm AlmaLinux 9 1:11.19.0-1.24.21.0.1.module_el9.8.0+321+1555b6a2
- nodejs AlmaLinux 9 1:24.21.0-1.module_el9.8.0+321+1555b6a2
- nodejs-libs AlmaLinux 9 1:24.21.0-1.module_el9.8.0+321+1555b6a2
- nodejs-nodemon AlmaLinux 9 3.1.14-3.module_el9.8.0+292+f4eaf8b2
- nodejs-full-i18n AlmaLinux 9 1:24.21.0-1.module_el9.8.0+321+1555b6a2
- nodejs-packaging AlmaLinux 9 2021.06-6.module_el9.7.0+209+ecf6523e
- nodejs-packaging-bundler AlmaLinux 9 2021.06-6.module_el9.7.0+209+ecf6523e
- npm AlmaLinux 8 1:11.19.0-1.24.21.0.1.module_el8.10.0+4292+21afb960
almalinux advisories ALSA-2026:73838ALSA-2026:74085ALSA-2026:73428
- nodejs-nodemon Rocky Linux 9 3.1.14-1.module+el9.8.0+40263+faa47049
- nodejs-packaging Rocky Linux 9 2021.06-6.module+el9.7.0+40052+e32ea525
- nodejs-packaging Rocky Linux 9 2021.06-6.module+el9.7.0+40165+d075e3f2
- nodejs-packaging Rocky Linux 9 2021.06-6.module+el9.8.0+40164+8921ab53
- nodejs-packaging Rocky Linux 9 2021.06-6.module+el9.7.0+40153+4d595597
- nodejs24 Rocky Linux 10 1:24.21.0-1.el10_2
- nodejs-nodemon Rocky Linux 8 3.1.14-2.module+el8.10.0+40277+b1b3f89e
- nodejs-nodemon Rocky Linux 8 3.1.14-2.module+el8.10.0+40278+50b003a3
rocky linux advisories RLSA-2026:97855RLSA-2026:73428RLSA-2026:74085RLSA-2026:73838
Is CVE-2026-84961 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-84961 updated cvss 7.4
undici: undici: TLS certificate validation bypass in BalancedPool via dropped connect options
-
Red Hat Exploit Intelligence exploit-intelligence/vulnerability-analysis-rhel9 Red Hat OpenShift Pipelines openshift-pipelines/pipelines-console-plugin-rhel9, openshift-pipelines/pipelines-console-plugin-pf5-rhel9 Red Hat Build of Podman Desktop rh-podman-desktop.git 1.1.0affected: workaround, no fix available
-
Red Hat Enterprise Linux 8 npm, nodejs, nodejs-libs, nodejs-nodemon, nodejs-full-i18n, nodejs-packaging, +1 more Red Hat Enterprise Linux 9 npm, nodejs, nodejs-libs, nodejs-full-i18n Red Hat Enterprise Linux 10 nodejs22 22.23.2-1.el10_2 Red Hat Hardened Images nodejs25 25.9.0-1.6.hum1affected: workaround, no fix planned “Will not fix”
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-mlflow-rhel9, rhoai/odh-core-bff-rhel9, rhoai/odh-dashboard-operator-rhel9, rhoai/odh-mod-arch-agent-ops-rhel9 Red Hat Openshift Data Foundation 4 odf4/mcg-core-rhel9, odf4/ocs-client-console-rhel9, odf4/odf-multicluster-console-rhel9affected: workaround, no fix available
-
Red Hat Secrets Management Console for Red Hat OpenShift external-secrets-management/console-plugin-rhel9affected: workaround, no fix planned “Will not fix”
-
Red Hat Cluster Observability Operator 1.5 cluster-observability-operator/monitoring-console-plugin-rhel9 1790854525, cluster-observability-operator/logging-console-plugin-pf4-rhel9 1790854525, cluster-observability-operator/monitoring-console-plugin-pf5-rhel9 1790854526, cluster-observability-operator/monitoring-console-plugin-pf6-rhel9 1790854528, cluster-observability-operator/distributed-tracing-console-plugin-rhel9 1793661918, cluster-observability-operator/distributed-tracing-console-plugin-rhel9 1793824908, +6 morefixed: vendor fix RHSA-2026:95591
-
Red Hat Ansible Automation Platform 2.1 ansible-automation-platform/automation-portal 1791295379fixed: vendor fix RHSA-2026:80603
-
Red Hat Ansible Automation Platform 2.2 ansible-automation-platform/automation-portal 1791293780, ansible-automation-platform/bootc-automation-portal-rhel9 1791865660fixed: vendor fix RHSA-2026:80644
-
Red Hat Developer Hub 1.9 rhdh/rhdh-hub-rhel9 1789554285fixed: vendor fix RHSA-2026:69248
show 15 moreshow fewer
-
Red Hat Developer Hub 1.10 rhdh/rhdh-hub-rhel9 1791311495, rhdh/red-hat-developer-hub-backstage-plugin-lightspeed-backend 1791242697, rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backend 1791251282, rhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backend-module-loki 1791250355, rhdh/red-hat-developer-hub-backstage-plugin-scaffolder-backend-module-orchestrator 1791249640fixed: vendor fix RHSA-2026:76788
-
Red Hat Enterprise Linux AppStream (v. 8) nodejs 24.21.0-1.module+el8.10.0+24927+ed3d907a, nodejs-libs 24.21.0-1.module+el8.10.0+24927+ed3d907a, nodejs-nodemon 3.1.14-2.module+el8.10.0+24711+b610b202, npm 11.19.0-1.24.21.0.1.module+el8.10.0+24927+ed3d907a, nodejs-full-i18n 24.21.0-1.module+el8.10.0+24927+ed3d907a, nodejs-packaging 2021.06-6.module+el8.10.0+24711+b610b202, +1 morefixed: vendor fix RHSA-2026:74085
-
Red Hat Enterprise Linux AppStream (v. 9) nodejs 26.8.2-1.module+el9.9.0+24929+16cef9a5, nodejs 24.21.0-1.module+el9.8.0+24924+cd677006, nodejs-libs 26.8.2-1.module+el9.9.0+24929+16cef9a5, nodejs-libs 24.21.0-1.module+el9.8.0+24924+cd677006, npm 11.19.1-1.26.8.2.1.module+el9.9.0+24929+16cef9a5, nodejs-nodemon 3.1.14-1.module+el9.9.0+24923+ac50c00f, +8 morefixed: vendor fix RHSA-2026:73838
-
Red Hat Enterprise Linux AppStream (v. 10) nodejs26 26.8.2-1.el10_3, nodejs24 24.21.0-1.el10_2, nodejs26-libs 26.8.2-1.el10_3, nodejs24-libs 24.21.0-1.el10_2, nodejs26-full-i18n 26.8.2-1.el10_3, nodejs24-full-i18n 24.21.0-1.el10_2, +2 morefixed: vendor fix RHSA-2026:73428
-
Red Hat Hardened Images nodejs26 26.8.2-0.1.hum1, nodejs24 24.18.1-0.2.2.hum1, grafana12.4 12.4.10-0.2.hum1, nodejs26-bin 26.8.2-0.1.hum1, nodejs26-libs 26.8.2-0.1.hum1, nodejs24-bin 24.18.1-0.2.2.hum1, +7 morefixed: vendor fix RHSA-2026:66008
-
Red Hat OpenShift AI 2.25 rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9 1791288400fixed: vendor fix RHSA-2026:87410
-
Red Hat OpenShift AI 3.4 rhoai/odh-dashboard-rhel9 1791861020, rhoai/odh-mod-arch-maas-rhel9 1791860708, rhoai/odh-mod-arch-automl-rhel9 1791861032, rhoai/odh-mod-arch-gen-ai-rhel9 1791861479, rhoai/odh-mod-arch-mlflow-rhel9 1791861383, rhoai/odh-mod-arch-autorag-rhel9 1791860994, +3 morefixed: vendor fix RHSA-2026:84734
-
Red Hat OpenShift AI 3.5 rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9 1791825469fixed: vendor fix RHSA-2026:86891
-
Red Hat Openshift Data Foundation 4.19 odf4/odf-console-rhel9 1793126829fixed: vendor fix RHSA-2026:92650
-
Red Hat OpenShift Dev Spaces 3.31 devspaces/code-rhel9 1792599388, devspaces/openvsx-rhel9 1792494821, devspaces/dashboard-rhel9 1791945540, devspaces/pluginregistry-rhel9 1792495212fixed: vendor fix RHSA-2026:90321
-
Red Hat Cluster Observability Operator 1.5 cluster-observability-operator/perses-rhel9 1790854501, cluster-observability-operator/perses-rhel9 1793661985, cluster-observability-operator/perses-rhel9 1793825744, cluster-observability-operator/thanos-rhel9 1790854526, cluster-observability-operator/thanos-rhel9 1793660568, cluster-observability-operator/thanos-rhel9 1793821585, +57 more Red Hat AMQ Broker 7 amq-broker-bin.zip 7.14.1.CR2, amq-broker-maven-repository.zip 7.14.1.CR3not affected: vulnerable code not present
-
Red Hat Ansible Automation Platform 2 automation-platform-ui 2.6.13-1.el9apnot affected: component not present
-
Red Hat Developer Hub 1.9 rhdh/rhdh-rhel9-operator 1789552931, rhdh/rhdh-operator-bundle 1789558887 Red Hat Developer Hub 1.10 rhdh/rhdh-rhel9-operator 1791219676, rhdh/rhdh-operator-bundle 1791315788, rhdh/rhdh-must-gather-rhel9 1788278523, rhdh/rhdh-rag-content-rhel9 1791168570, rhdh/red-hat-developer-hub-backstage-plugin-lightspeed 1791242743, rhdh/red-hat-developer-hub-backstage-plugin-orchestrator 1791250003, +1 more Red Hat Enterprise Linux 10 grafana 12.4.3-2.el10 Red Hat Hardened Images rust 1.97.1-2.hum1, jaeger 2.20.0-0.8.hum1, prometheus3.13 3.13.2-0.2.hum1 Red Hat OpenShift AI 2.25 rhoai/odh-rhel9-operator 1792570619, rhoai/odh-vllm-cpu-rhel9 1792018436, rhoai/odh-dashboard-rhel9 1791853525, rhoai/odh-modelmesh-rhel9 1790881700, rhoai/odh-operator-bundle 1792571069, rhoai/odh-vllm-cuda-rhel9 1791358976, +65 more Red Hat OpenShift AI 3.4 rhoai/odh-cli-rhel9 1791509689, rhoai/rhai-cli-rhel9 1791509689, rhoai/odh-automl-rhel9 1791535789, rhoai/odh-mlflow-rhel9 1791865967, rhoai/odh-autorag-rhel9 1791557539, rhoai/odh-trainer-rhel9 1791869783, +91 morenot affected: vulnerable code not present
+1 more productsfewer
Red Hat OpenShift AI 3.5 rhoai/odh-cli-rhel9 1791945905, rhoai/rhai-cli-rhel9 1791945905, rhoai/odh-automl-rhel9 1791916705, rhoai/odh-mlflow-rhel9 1791947857, rhoai/odh-autorag-rhel9 1791903266, rhoai/odh-trainer-rhel9 1791952138, +112 more -
Red Hat OpenShift Container Platform 4 wasmedge, wasmedge-rt, openshift4/ose-monitoring-plugin-rhel9not affected: vulnerable code not in execute path
-
Red Hat Openshift Data Foundation 4.19 odf4/cephcsi-rhel9 1793125678, odf4/odf-cli-rhel9 1793126086, odf4/mcg-core-rhel9 1793125866, odf4/mcg-rhel9-operator 1793125881, odf4/ocs-rhel9-operator 1793126016, odf4/odf-rhel9-operator 1793126364, +26 more Red Hat OpenShift Dev Spaces 3.31 devspaces/udi-rhel9 1792708612, devspaces/server-rhel9 1792775639, devspaces/traefik-rhel9 1792464177, devspaces/udi-base-rhel9 1792686842, devspaces/code-sshd-rhel9 1792598059, devspaces/configbump-rhel9 1792461966, +6 more Red Hat Trusted Artifact Signer rhtas/rhtas-console-ui-rhel9not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 2mo ago
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
| GitHub | 3.1 | 7.4 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N |
| NVD | 3.1 | 9.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | undici | >=7.24.1, <7.29.1 >=8.0.0, <8.10.2 |
7.29.1 8.10.2 |
Affected products
- undici undici
Classification
- Weakness
-
- CWE-295 Improper Certificate Validation
References
-
github.com
/nodejs/undici/commit/8f5868fbdbc8f1146dfc1bcd1f2d117790141390
web
-
github.com
/nodejs/undici/commit/f690157d728508652fef14673630c71515123e96
web
-
github.com
/nodejs/undici/security/advisories/GHSA-w293-vg96-wgc3
web, mitigation, vendor-advisory, advisory
-
cna.openjsf.org
/security-advisories.html
web, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-84961
advisory
-
github.com
/nodejs/undici
package
-
github.com
/nodejs/undici/releases/tag/v7.29.1
web
-
github.com
/nodejs/undici/releases/tag/v8.10.2
web
Sources
- CVE List CVE-2026-84961
- GitHub Advisory GHSA-w293-vg96-wgc3
- NVD CVE-2026-84961
- Maintainer advisory GHSA-w293-vg96-wgc3
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of nodejs/undici published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.