GitHub Advisoryadvisory · npm

GHSA-jr45-8vmc-qm54 undici vulnerable to cross-user information disclosure via whitespace around equals in Cache-Control directives

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

Affected packages

• npm undici: >= 7.0.0, < 7.29.0 → fixed in 7.29.0 • npm undici: >= 8.0.0, < 8.9.0 → fixed in 8.9.0

Description

Impact Undici's cache interceptor mishandles optional whitespace (OWS) placed around the `=` of a qualified `no-cache` or `private` Cache-Control directive, such as `no-cache ="authorization"` (OWS before `=`) or `no-cache= "authorization"` (OWS after `=`). The parser either drops the directive entirely or stores a field name with literal quote characters, so the downstream cache decisions do not recognize the qualification and the response is stored. In shared-cache mode, this allows a response containing one user's authenticated data to be served from cache to a subsequent caller, including an unauthenticated caller, when both requests resolve to the same cache key. The impact class is identical to CVE-2026-9678 (GHSA-pr7r-676h-xcf6); this advisory covers the whitespace-around-`=` bypass that the earlier fix did not normalize. Affected applications are those that explicitly enable the cache interceptor (`interceptors.cache()`) in shared mode, forward `Authorization` headers upstream, and receive cacheable responses with qualified `private` or `no-cache` directives whose field-name list is padded with OWS around the `=`. Patches Upgrade to undici v7.29.0 or v8.9.0. Workarounds If upgrade is not immediately possible, disable shared-cache mode for traffic that includes `Authorization` headers, avoid caching responses to authenticated requests, or add `Vary: Authorization` upstream.

Related

Alias · CVE (1)

  • CVE-2026-14643 undici's cache interceptor mishandles optional whitespace placed around the equals sign of a qualified no-cache or private Cache-Control… vulnerability

Weakness · CWE (2)

  • CWE-436 Interpretation Conflict weakness
  • CWE-524 Use of Cache Containing Sensitive Information weakness

References