Description
undici is an HTTP client library for Node.js. In versions 7.0.0 through 7.30.0 and 8.0.0 through 8.12.1, when an originless Agent composes the redirect and cache interceptors in that order with a shared cache store, the cache builds its key from the original request URL before the redirect handler changes the origin, so a response produced after a cross-origin redirect is stored under the original key. An attacker who controls the target of a redirect from a trusted URL can have their response cached under that trusted URL and served to later callers, allowing persistent cache poisoning, and the same key confusion lets a private, non-stored redirect response to a user-specific resource be stored under the original URL and served to a later unauthenticated caller, disclosing private data. Applications are affected only when an originless Agent, a shared cache store, and the redirect-then-cache composition are all used. The issue is fixed in undici 7.30.1 and 8.12.2, which verify the producing origin still matches the cache key and preserve each redirect hop's cache-control policy before storing, and users should upgrade to one of those versions or later. As a workaround, compose the cache interceptor before the redirect interceptor, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
Published: 2026-10-15
Score: 7.4 High
EPSS: < 1% Very Low
KEV: No
Impact: Cross‑origin redirect leads to cache poisoning and cross‑user data disclosure
Action: Upgrade Now
AI Analysis

Impact

undici, the HTTP client library for Node.js, contains a flaw that allows cache poisoning and cross‑user disclosure when an originless Agent processes redirects before caching. The vulnerability is present in versions 7.0.0 to 7.30.0 and 8.0.0 to 8.12.1 that use a shared cache store with the redirect‑then‑cache interceptor order. A malicious redirect target can cause responses from the attacker to be cached under a trusted URL, then served to other users. Additionally, private user‑specific responses that are not normally cached can be stored under the original key and exposed to unauthenticated callers. The flaw involves mismatched origin control (CWE‑346) and cache key collision (CWE‑524).

Affected Systems

The issue affects any Node.js application that imports undici between version 7.0.0 and 7.30.0 or between 8.0.0 and 8.12.1 and that configures an originless Agent, a shared cache store, and a redirect‑then‑cache interceptor chain. Applications that use a more recent undici release (7.30.1 or 8.12.2 or newer) are not vulnerable because the fix verifies the origin before caching and preserves redirect cache‑control policies.

Risk and Exploitability

The CVSS score of 7.4 indicates a severity of high, and the moderate score suggests that the vulnerability can be exploited over the network. EPSS is not available, and the issue is not listed in CISA KEV, implying that there have been no confirmed public exploits. Attackers would need to control a redirect target originating from a trusted application and have the application perform a redirect‑then‑cache sequence with a shared cache store. If successful, a persistent cache poisoned entry could serve attacker data to multiple users, and private, non‑cached responses could leak sensitive information to unauthenticated users.

Generated by OpenCVE AI on October 16, 2026 at 06:40 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade undici to version 7.30.1 or 8.12.2 or later, which checks the producing origin against the cache key and enforces redirect‑specific cache‑control policies.
  • Reconfigure the interceptor order to apply the cache interceptor before the redirect interceptor when a shared cache store is used.
  • Use per‑origin dispatcher and cache store setups or disable shared caching on requests that can produce redirects to eliminate the shared cache key collision.

Generated by OpenCVE AI on October 16, 2026 at 06:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4w7w-5xrc-9h26 undici vulnerable to cache poisoning and cross-user disclosure via cross-origin redirects
History

Mon, 19 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Nodejs
Nodejs undici
CPEs cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*
Vendors & Products Nodejs
Nodejs undici

Sat, 17 Oct 2026 09:30:00 +0000

Type Values Removed Values Added
First Time appeared Undici
Undici undici
Vendors & Products Undici
Undici undici

Fri, 16 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 16 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Important


Thu, 15 Oct 2026 18:45:00 +0000

Type Values Removed Values Added
Description undici is an HTTP client library for Node.js. In versions 7.0.0 through 7.30.0 and 8.0.0 through 8.12.1, when an originless Agent composes the redirect and cache interceptors in that order with a shared cache store, the cache builds its key from the original request URL before the redirect handler changes the origin, so a response produced after a cross-origin redirect is stored under the original key. An attacker who controls the target of a redirect from a trusted URL can have their response cached under that trusted URL and served to later callers, allowing persistent cache poisoning, and the same key confusion lets a private, non-stored redirect response to a user-specific resource be stored under the original URL and served to a later unauthenticated caller, disclosing private data. Applications are affected only when an originless Agent, a shared cache store, and the redirect-then-cache composition are all used. The issue is fixed in undici 7.30.1 and 8.12.2, which verify the producing origin still matches the cache key and preserve each redirect hop's cache-control policy before storing, and users should upgrade to one of those versions or later. As a workaround, compose the cache interceptor before the redirect interceptor, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
Title undici vulnerable to cache poisoning and cross-user disclosure via cross-origin redirects
Weaknesses CWE-346
CWE-524
References
Metrics cvssV3_1

{'score': 7.4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: openjs

Published:

Updated: 2026-10-16T20:04:09.504Z

Reserved: 2026-10-13T05:47:05.596Z

Link: CVE-2026-109829

cve-icon Vulnrichment

Updated: 2026-10-16T20:04:04.600Z

cve-icon NVD

Status : Analyzed

Published: 2026-10-15T19:17:21.513

Modified: 2026-10-19T20:45:43.390

Link: CVE-2026-109829

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-15T18:28:04Z

Links: CVE-2026-109829 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T09:15:06Z

Weaknesses
  • CWE-346

    Origin Validation Error

  • CWE-524

    Use of Cache Containing Sensitive Information