CVE-2026-14643: undici vulnerable to cross-user information disclosure via whitespace around equals in Cache-Control directives
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.
Other sources
undici's cache interceptor mishandles optional whitespace placed around the equals sign of a qualified no-cache or private Cache-Control directive. In undici from 7.0.0 up to before 7.29.0 and from 8.0.0 up to before 8.9.0, the parser either drops the directive or stores a field name with literal quote characters, so the cache decision fails to recognize the qualification and the response is stored. In shared-cache mode, this lets a response containing one user's authenticated data be served from cache to a later caller, including an unauthenticated one, when both requests resolve to the same cache key. It affects applications that enable the cache interceptor in shared mode, forward Authorization headers upstream, and receive cacheable responses with qualified directives padded with whitespace around the equals sign. This is the whitespace-around-equals variant that the fix for CVE-2026-9678 did not normalize, and it is fixed in undici 7.29.0 and 8.9.0.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/undicito a version that resolves this vulnerability.Fixed in 8.9.0 - Upgrade
Upgrade
npm/undicito a version that resolves this vulnerability.Fixed in 7.29.0 - Upgrade
Upgrade
undicito a version that resolves this vulnerability.Fixed in 7.29.0 - Upgrade
Upgrade
undicito a version that resolves this vulnerability.Fixed in 8.9.0 - Configuration
If upgrade is not immediately possible, disable shared-cache mode for traffic that includes `Authorization` headers.
undici cache interceptor (shared mode) shared-cache mode for traffic that includes Authorization headers = disabled - Configuration
If upgrade is not immediately possible, avoid caching responses to authenticated requests.
undici cache interceptor cache responses to authenticated requests = avoid caching - Configuration
If upgrade is not immediately possible, add `Vary: Authorization` upstream.
upstream HTTP response headers Vary header = Vary: Authorization
Event History
Frequently Asked Questions
What is the severity of CVE-2026-14643?
The severity of CVE-2026-14643 is rated as medium with a score of 5.9.
How do I fix CVE-2026-14643?
To fix CVE-2026-14643, upgrade undici to version 7.29.0 or later, or to version 8.9.0 or later.
What are the consequences of CVE-2026-14643?
CVE-2026-14643 can lead to cross-user information disclosure due to the improper handling of whitespace in Cache-Control directives.
Which versions of undici are affected by CVE-2026-14643?
CVE-2026-14643 affects undici versions from 7.0.0 up to before 7.29.0 and from 8.0.0 up to before 8.9.0.
What kind of vulnerabilities does CVE-2026-14643 involve?
CVE-2026-14643 involves cross-user information disclosure vulnerabilities related to Cache-Control directives.