Skip to main content

undici EUVDEUVD-2026-50567

| CVE-2026-14643 HIGH
Interpretation Conflict (CWE-436)
2026-07-29 openjs GHSA-jr45-8vmc-qm54
7.5
CVSS 3.1 · NVD
Share

Severity by source

Vendor (openjs) PRIMARY
MEDIUM
qualitative
NVD
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI
5.9 MEDIUM

AC:H reflects the non-default shared-cache configuration, Authorization forwarding, OWS-padded upstream headers, and same-cache-key timing all being required simultaneously; PR:N because the attacker needs no credentials of their own.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat
5.9 MEDIUM
qualitative

Primary rating from Vendor (openjs).

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

8
Source Code Evidence Fetched
Aug 04, 2026 - 16:14 vuln.today
Analysis Updated
Aug 04, 2026 - 16:14 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Aug 04, 2026 - 16:08 vuln.today
cvss_changed
Severity Changed
Aug 04, 2026 - 16:08 NVD
MEDIUM HIGH
CVSS changed
Aug 04, 2026 - 16:08 NVD
5.9 (MEDIUM) 7.5 (HIGH)
Patch available
Jul 29, 2026 - 22:02 EUVD
Analysis Generated
Jul 29, 2026 - 21:51 vuln.today
CVE Published
Jul 29, 2026 - 21:08 cve.org
MEDIUM 5.9

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 28 npm packages depend on undici (16 direct, 23 indirect)

Ecosystem-wide dependent count for version 7.0.0.

DescriptionNVD

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.

AnalysisAI

Cross-user information disclosure in undici's cache interceptor allows authenticated users' responses to be served from a shared cache to subsequent callers, including unauthenticated ones, when the upstream origin sends qualified no-cache or private Cache-Control directives with optional whitespace (OWS) around the = delimiter. Affected deployments are those explicitly running undici 7.0.0-7.28.x or 8.0.0-8.8.x with interceptors.cache() in shared mode while forwarding Authorization headers upstream. This is a bypass of the earlier CVE-2026-9678 fix; a public proof-of-concept exists and vendor-released patches are available in undici 7.29.0 and 8.9.0.

Technical ContextAI

undici is the Node.js native HTTP/1.1 client library, maintained under the Node.js project and distributed via npm (CPE: cpe:2.3:a:undici:undici:*:*:*:*:*:*:*:*). The defect is in lib/util/cache.js's parseCacheControlHeader function, classified under CWE-436 (Interpretation Conflict): RFC 7234 permits optional whitespace (OWS) around the = in qualified Cache-Control directives such as private ="authorization" or no-cache= "authorization", but the undici parser did not trim this whitespace. Consequently, the parser either silently drops the entire directive or stores the field name with embedded literal quote and whitespace characters, neither of which matches the normalized field name the cache decision logic subsequently looks for. The result is that the response is written to cache as if it were publicly shareable, when the origin clearly intended to restrict it to specific header fields. The commit diff shows the fix is a targeted .trim() applied both to the overall field-name value and to each individual name in a comma-separated list. This vulnerability is the whitespace-around-equals variant that the prior fix for CVE-2026-9678 (GHSA-pr7r-676h-xcf6) did not normalize.

RemediationAI

Upgrade to undici 7.29.0 (for 7.x deployments) or 8.9.0 (for 8.x deployments) - these are the vendor-confirmed patched releases per GHSA-jr45-8vmc-qm54 (https://github.com/nodejs/undici/security/advisories/GHSA-jr45-8vmc-qm54), with fixes applied in commits 85a240551c9feb8b8a0ecc56c84b2b3015add8a9 and cb105d7c79069150982fa11acada0dd94a60dbbc. If an immediate upgrade is not feasible, the GHSA documents three compensating controls: first, disable shared-cache mode for any traffic path that includes Authorization headers - this eliminates the cross-user risk but removes caching benefits for authenticated flows; second, avoid caching responses to authenticated requests entirely - safest option but eliminates all caching utility for authenticated sessions; third, add Vary: Authorization to upstream server responses - this causes the cache to key on the Authorization header value, preventing cross-user cache collisions, but requires upstream server control and will significantly increase cache miss rates and origin load. None of the workarounds address the underlying parser defect; upgrading remains the definitive fix.

More in Undici

View all
CVE-2022-35949 CRITICAL POC
9.8 Aug 12

undici is an HTTP/1.1 client, written from scratch for Node.js.`undici` is vulnerable to SSRF (Server-side Request Forge

CVE-2026-12151 HIGH POC
7.5 Jun 17

Memory exhaustion denial of service in the undici WebSocket client (versions 6.17.0 and later) allows a malicious or com

CVE-2026-16729 MEDIUM POC
6.5 Jul 29

Cookie attribute injection in undici's setCookie function allows attacker-controlled domain values or unparsed array ent

CVE-2022-31151 MEDIUM POC
6.5 Jul 21

Authorization headers are cleared on cross-origin redirect. Rated medium severity (CVSS 6.5), this vulnerability is remo

CVE-2022-32210 MEDIUM POC
6.5 Jul 14

`Undici.ProxyAgent` never verifies the remote server's certificate, and always exposes all request & response data to th

CVE-2026-15157 MEDIUM POC
5.4 Jul 29

CRLF injection in undici's HTTP/1.1 dispatcher enables HTTP header injection and potential request smuggling when applic

CVE-2023-23936 MEDIUM POC
5.4 Feb 16

Undici is an HTTP/1.1 client for Node.js. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploitable,

CVE-2022-35948 MEDIUM POC
5.3 Aug 15

undici is an HTTP/1.1 client, written from scratch for Node.js.`=< undici@5.8.0` users are vulnerable to _CRLF Injection

CVE-2026-13697 CRITICAL
9.1 Jul 29

Cross-user information disclosure and a parse-time denial of service in undici's HTTP cache interceptor affect versions

CVE-2026-84961 CRITICAL
9.1 Sep 04

TLS certificate validation bypass in undici's BalancedPool dispatcher silently discards function-valued options - includ

CVE-2026-6734 HIGH
8.8 Jun 17

Cross-origin request misrouting in undici's Socks5ProxyAgent (introduced in 7.23.0, affecting all releases through 8.1.0

CVE-2026-84933 HIGH
8.2 Sep 04

undici's cache interceptor mishandles the Set-Cookie response header, failing to either refuse storage or strip it, so i

Vendor StatusVendor

Share

EUVD-2026-50567 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy