Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-84961

Опубликовано: 04 сент. 2026
Источник: redhat
CVSS3: 7.4
EPSS Низкий

Описание

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.

A flaw was found in undici's BalancedPool component. This vulnerability allows a remote attacker to bypass Transport Layer Security (TLS) certificate validation. The BalancedPool constructor incorrectly processes its options, silently discarding custom certificate validation functions. Consequently, a peer with an otherwise untrusted certificate may be accepted, potentially compromising the integrity of secure communication.

Отчет

This flaw only affects applications that construct an undici BalancedPool with a function-valued connect or tls option — for example, a custom checkServerIdentity callback or connector used for certificate pinning across multiple upstreams. Client, Pool, Agent, and RoundRobinPool destructure these options before the internal JSON-based clone and are not affected. An attacker able to present, on the network path, a TLS endpoint whose certificate the application's custom validator was written to reject — but which still satisfies Node.js's default hostname and chain checks — can have that certificate silently accepted when the connection goes through BalancedPool, enabling a man-in-the-middle attack against affected connections. This affects undici versions from 7.24.1 up to 7.29.1 and from 8.0.0 up to 8.10.2.

Меры по смягчению последствий

Applications that do not use BalancedPool, or that use it without a custom function-valued connect/tls option, are not affected and require no action. As a workaround until packages are updated, avoid using BalancedPool for any connection that relies on custom TLS certificate validation (e.g. certificate pinning); use Client, Pool, or Agent instead, which are unaffected. The permanent fix is upgrading undici to 7.29.1 or later (7.x line) or 8.10.2 or later (8.x line).

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Exploit Intelligenceexploit-intelligence/vulnerability-analysis-rhel9Affected
OpenShift Pipelinesopenshift-pipelines/pipelines-console-plugin-pf5-rhel9Affected
OpenShift Pipelinesopenshift-pipelines/pipelines-console-plugin-rhel9Affected
Red Hat AMQ Broker 7amq-broker-bin.zipNot affected
Red Hat AMQ Broker 7amq-broker-maven-repository.zipNot affected
Red Hat Ansible Automation Platform 2automation-platform-uiNot affected
Red Hat Build of Podman Desktoprh-podman-desktop.gitAffected
Red Hat Developer Hubrhdh/red-hat-developer-hub-backstage-plugin-lightspeed-backendAffected
Red Hat Developer Hubrhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backendAffected
Red Hat Developer Hubrhdh/red-hat-developer-hub-backstage-plugin-orchestrator-backend-module-lokiAffected

Показывать по

Дополнительная информация

Статус:

Important
Дефект:
CWE-295
https://bugzilla.redhat.com/show_bug.cgi?id=2528735undici: undici: TLS certificate validation bypass in BalancedPool via dropped connect options

EPSS

Процентиль: 4%
0.00145
Низкий

7.4 High

CVSS3

Связанные уязвимости

CVSS3: 7.4
ubuntu
9 дней назад

(undici's BalancedPool constructor passes its entire options object thr ...)

CVSS3: 7.4
nvd
12 дней назад

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.

CVSS3: 7.4
debian
12 дней назад

undici's BalancedPool constructor passes its entire options object thr ...

EPSS

Процентиль: 4%
0.00145
Низкий

7.4 High

CVSS3