Skip to content
Fencer Intel
medium 5.9

CVE-2026-14643 json

undici vulnerable to cross-user information disclosure via whitespace around equals in Cache-Control directives

published 3mo ago modified last mo. also GHSA-jr45-8vmc-qm54 , EUVD-2026-50567

cvss
5.9
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.4%
EPSS 0.4% chance of exploitation in 30 days, percentile 34%
public exploits
0
none known

Summary

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.

Patch / fix

  • npm undici 7.29.0, 8.9.0
  • undici undici 7.29.0, 8.9.0
  • node-undici Debian 14 8.9.0+dfsg+~cs3.2.0-1

debian advisories DEBIAN-CVE-2026-14643

  • nodejs24 hummingbird 1 24.18.1-0.1.hum1
  • nodejs24-bin hummingbird 1 24.18.1-0.1.hum1
  • nodejs24-npm hummingbird 1 11.16.0-1.24.18.1.0.1.hum1
  • nodejs24-libs hummingbird 1 24.18.1-0.1.hum1
  • nodejs24-npm-bin hummingbird 1 24.18.1-0.1.hum1
  • nodejs24-full-i18n hummingbird 1 24.18.1-0.1.hum1
  • nodejs26 hummingbird 1 26.5.1-1.5.hum1
  • nodejs26-bin hummingbird 1 26.5.1-1.5.hum1

red hat advisories RHSA-2026:48537RHSA-2026:48273

Is CVE-2026-14643 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-14643 updated cvss 5.9

undici: undici: Cross-user information disclosure due to improper Cache-Control directive parsing

  • Red Hat Hardened Images nodejs25 25.9.0-1.5.hum1
    affected: no fix planned “Will not fix”
  • Red Hat Hardened Images nodejs26 26.5.1-1.5.hum1, nodejs24 24.18.1-0.1.hum1, nodejs26-bin 26.5.1-1.5.hum1, nodejs24-bin 24.18.1-0.1.hum1, nodejs26-libs 26.5.1-1.5.hum1, nodejs24-libs 24.18.1-0.1.hum1, +6 more
    fixed: vendor fix RHSA-2026:48537
  • Red Hat Hardened Images rust 1.97.1-2.hum1, jaeger 2.20.0-0.6.hum1, grafana12.4 12.4.6-0.2.hum1, prometheus3.13 3.13.1-0.4.hum1
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
3mo ago

Exploit prediction

0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-09).

CVSS scores

assigned by version score vector
CNA 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
NVD 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
GitHub 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

Affected packages

ecosystem package affected fixed in
npm undici
>=7.0.0, <7.29.0
>=8.0.0, <8.9.0
7.29.0
8.9.0

Affected products

  • undici undici

Classification

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

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.