CVE-2026-109829: undici vulnerable to cache poisoning and cross-user disclosure via cross-origin redirects
When an originless Agent composes the redirect and cache interceptors as compose(redirect(), cache()) with a shared cache (type: 'shared'), the cache builds its key from the original request URL before the redirect handler changes the origin. The response produced after a redirect is then stored under the original key, even when the redirect crossed to a different origin.
An attacker who controls the target of a redirect from a trusted URL can have their response cached under that trusted URL. A later caller requesting the trusted URL receives the attacker’s body from the shared cache without either origin being contacted, allowing persistent cache poisoning. The same key confusion also discloses private data: when an authenticated request returns a private, no-store redirect to a user-specific resource, the final response is stored under the original URL and can be served to a later unauthenticated caller.
The cache interceptor was introduced in undici 7.0.0, and all 7.x and 8.x releases before the patched versions are affected. Applications are affected only when an originless Agent, a shared MemoryCacheStore or SqliteCacheStore, and the composition compose(redirect(), cache()) are all used. Origin-bound Client and Pool dispatchers, and the reverse composition compose(cache(), redirect()), are not affected.
References
- cna.openjsf.org/security-advisories.html
- github.com/advisories/GHSA-4w7w-5xrc-9h26
- github.com/nodejs/undici/commit/26c2bfb3def0b67241ce878e80657ed5d6c3efa8
- github.com/nodejs/undici/commit/b20b82ad80a405a12b6ce1f341bcd418de390aa0
- github.com/nodejs/undici/releases/tag/v7.30.1
- github.com/nodejs/undici/releases/tag/v8.12.2
- github.com/nodejs/undici/security/advisories/GHSA-4w7w-5xrc-9h26
- nvd.nist.gov/vuln/detail/CVE-2026-109829
Code Behaviors & Features
Detect and mitigate CVE-2026-109829 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →