Zero Radar
← feed
HighVulnerabilityCVE-2026-109829updated 27 Oct 2026, 19:02 UTC

undici HTTP client can cache redirected responses under the wrong address

If an app uses this HTTP library with a shared cache and follows redirects, a response from a different site can be saved under a trusted address. Later users may then receive that wrong or private content.

Fixed in undici 7.30.1 and 8.12.2Official source
SeverityHighCVSS 7.4 of 10
Being exploited?UnclearNo reports either way yet
Fix available?Yesundici 7.30.1 and 8.12.2 · since 27 Oct 2026
How sure is this?Official sourceBacked by an official source

How the attack works simplified

  1. 1Attacker controls redirectRedirect from trusted URL points to attacker server
  2. 2Redirect followedClient follows redirect to a different origin
  3. 3Cache key uses original URLResponse stored under the trusted URL key
  4. 4Later caller requests trusted URLGets cached content without contacting either origin
  5. ResultAttacker content served under trusted URL

What happened

In undici's originless Agent, compose(redirect(), cache()) with a shared cache builds the cache key from the original URL before redirects change the origin, so redirected responses (including private/no-store ones) are stored under the original key.

Why it is dangerous: An attacker who controls a redirect target can poison the shared cache for a trusted URL, and private user-specific responses can be served to unauthenticated callers.

Are you affected?

You are affected if you use undici 7.0.0 up to (not including) 7.30.1, or 8.0.0 up to (not including) 8.12.2, with an originless Agent, a shared MemoryCacheStore or SqliteCacheStore, and compose(redirect(), cache()).

Package / productAffected versionsFixed in
undici · npm>= 7.0.0, < 7.30.17.30.1
undici · npm>= 8.0.0, < 8.12.28.12.2

What to do

  1. Upgrade undici to 7.30.1 (7.x line) or 8.12.2 (8.x line)
  2. If you cannot upgrade, compose the interceptors as compose(cache(), redirect()) instead
  3. Alternatively, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests

Timeline

  1. 27 Oct 2026, 19:02 UTC
    Publicly disclosed
  2. 27 Oct 2026, 19:02 UTC
    Reported by GitHub Advisory · GitHub Advisory
  3. 27 Oct 2026, 19:02 UTC
    Picked up by Zero Radar

Sources 1 report, oldest first

Official vendor, government CERT or advisory database

Technical details

ID
CVE-2026-109829 · GHSA-4w7w-5xrc-9h26
CVSS
7.4 / 10
EPSS
0.1% chance of exploitation within 30 days
Disclosed
27 Oct 2026, 19:02 UTC
On Zero Radar
27 Oct 2026, 19:02 UTC (0 min after disclosure)
Last change
27 Oct 2026, 19:02 UTC

The plain-language parts and the attack diagram were written by an AI model (anthropic/claude-haiku-5.5) from the sources above. Facts like versions, exploitation and dates come from the sources themselves. How Zero Radar works

undici HTTP client can cache redirected responses under the wrong address · Zero Radar