CVE-2026-116630 · Package
NO FIX YET · SEE WHAT TO DO
undici, the HTTP client for Node.js, can treat a 304 Not Modified from a different origin as valid revalidation when a conditional request is redirected. A shared cache can then serve an original origin's stored authenticated response, including one gated by Authorization, to an unauthenticated caller.
first public Nov 5, 2026 · 1 source
Check it with your coding agent
It checks your repository and tells you if you’re affected, with the fix.
Only applications that use undici's Agent with both the redirect and shared cache interceptors composed, and where a cache store is shared across origins and requests can be redirected. Per-origin dispatchers or per-origin cache stores, or applications without shared caching on redirect-capable requests, are less exposed. Other undici setups are unknown from these sources.
Not affected if cache-then-redirect-order, no-shared-caching, per-origin-cache-stores
Who cares http-client, node.js, shared-cache, undici
npm ls undici, looking for 7.0.0 through 7.30.1 or 8.0.0 through 8.12.3.7.30.2undici is an HTTP client for Node.js. In versions 7.0.0 through 7.30.1 and 8.0.0 through 8.12.3, when an Agent composes the redirect and shared cache interceptors, a cached response that is revalidated with a conditional request can be validated by a 304 Not Modified from a different origin. When the origin that stored the response redirects the conditional revalidation request to another origin, the redirect handler strips origin-bound credential headers but not the cache-generated If-None-Match or If-Modified-Since validators, so the redirect destination receives the original origin's validator and undici treats its 304 as successful revalidation of the stored representation. As a result, a shared cache can serve the original origin's stored authenticated response, including one gated by Authorization, to a later unauthenticated caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
This page as .md ·
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
8.12.4NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.