GitHub Advisoryadvisory · npm

GHSA-2jfj-6hjv-fm6j undici vulnerable to cross-user cookie disclosure via Set-Cookie caching in shared caches

MEDIUM Published 2026-09-29 Modified 2026-09-29 Official page ↗
Aliases
CVE-2026-84933
Ecosystem
npm
Packages
undici
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N
Weaknesses
CWE-200, CWE-524
Reviewed
2026-09-29

Affected packages

• npm undici: >= 7.0.0, < 7.29.1 → fixed in 7.29.1 • npm undici: >= 8.0.0, < 8.10.2 → fixed in 8.10.2

Description

Impact undici's `interceptors.cache()` does not handle `Set-Cookie` in the cache path. In shared-cache mode (`type: 'shared'`, the default), a cacheable response (for example `Cache-Control: public, max-age=...`) carrying a `Set-Cookie` header is stored, and the stored `Set-Cookie` is re-served to a later caller that hits the same cache key. This exposes one user's cookie to another caller and lets an untrusted upstream inject cookies into cached responses served to all subsequent callers, violating RFC 6265 section 7.2 (a shared cache must not store cookies). Applications using the shared cache interceptor against untrusted or multi-user upstreams are affected. Private caches (`type: 'private'`) are not affected. Patches Upgrade to `7.29.1` or `8.10.2`. In shared-cache mode, undici no longer stores or re-serves responses containing `Set-Cookie`, including previously cached entries and revalidation paths. Workarounds Use a private cache (`type: 'private'`) for per-user responses, or avoid caching responses that set cookies. Applications acting as shared caches should strip `Set-Cookie` from responses before caching.

Related

Alias · CVE (1)

  • CVE-2026-84933 undici's cache interceptor does not handle the Set-Cookie response header anywhere in its cache path, so it neither refuses to store nor… vulnerability

Weakness · CWE (2)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
  • CWE-524 Use of Cache Containing Sensitive Information weakness

References