ZeroHour

CVE-2026-85152

moderate

Cross-origin cache poisoning and auth bypass in undici (Node.js HTTP client)

CVSS 3.1
7.4 high
EPSS
<1%p7
Published
()
Modified
AI analysis

Undici 8.10.0 introduced a regression in which the destination origin is omitted from the internal cache and request-deduplication keys when the cache or deduplicate interceptor is composed directly onto a Client or Pool, causing the empty origin string to be used as a fallback key. As a result, a cacheable or in-flight response from one upstream origin is returned for a request to a different, trusted origin whenever the method, path, and relevant headers match, enabling cross-origin information disclosure and persistent cache poisoning. The reporter demonstrated a full authentication bypass in which a JWT signed with an attacker-controlled key was accepted as belonging to a trusted issuer, and the trusted origin was never contacted. Applications on undici 8.10.0 through 8.10.2 that compose these interceptors directly onto a Client or Pool are affected, while applications using an Agent, which carries the origin in its dispatch options, are not affected. No public proof-of-concept is known, the flaw is not in CISA KEV, and EPSS estimates only a 0.2% probability of exploitation within 30 days, so no active exploitation is known at this time.

What to do: Upgrade to undici 8.10.2, which restores the origin in cache and deduplication keys. As an interim mitigation, stop composing the cache or deduplicate interceptor directly onto Client or Pool instances or dispatch through an Agent instead, and audit existing caches for entries written without origin (clearing them to remove persistent poison). Review whether responses originating from attacker-reachable origins may have been served to trusted origins, particularly around JWT/token validation, and check dependency locks for pinned undici 8.10.0-8.10.1 versions.

Affected
undici (Node.js HTTP client project) undici>= 8.10.0, < 8.10.2 (regression introduced in 8.10.0; fixed in 8.10.2), when the cache or deduplicate interceptor is composed directly onto a Client or Pool
Estimated exposure
moderatelikely on the order of tens of thousands of Node.js application deployments — Undici is the standard HTTP client bundled with Node.js and sees very high npm download volume, but only the brief 8.10.0-8.10.1 release window plus the less-common pattern of composing cache/deduplicate interceptors directly onto a Client…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

undici 8.10.0 omits the destination origin from the cache and request-deduplication keys when the cache or deduplicate interceptor is composed directly onto a Client or Pool. Because the internal cache key falls back to an empty origin string, a cacheable or in-flight response from one upstream origin is returned for a request to a different, trusted origin whenever the method, path, and relevant headers match, which permits cross-origin information disclosure and persistent cache poisoning. The reporter demonstrated a full authentication bypass in which a JWT signed with an attacker-controlled key was accepted as belonging to a trusted issuer, and the trusted origin was never contacted. This is a regression introduced in 8.10.0 and affects undici versions from 8.10.0 up to 8.10.2. Applications using an Agent, which carries the origin in its dispatch options, are not affected. Users should upgrade to undici 8.10.2.

Weakness
CWE-346
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

In the news

No ingested article mentions this CVE yet.