CVE-2026-116592
undici vulnerable to cache poisoning and cross-user disclosure via intermediate redirect hops
CVE-2026-116592 is a high vulnerability (CVSS 7.4) in Undici, published November 6, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.16%, the 4th percentile. No source names a fixed version.
- Severity
- 7.4 HighCVSS 3.1, CVE List
- Exploit chance
- 0.16%EPSS, 4th percentile
- Exploitation
- None knownNot on CISA’s or ENISA’s lists
- Fixed in
- No fix listedNo source names one
Description
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
Discussion
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nodejsAzure Linux:3 | through 24.22.1-1 | None known |
node-undiciDebian:12 | All versions, plus listed versions 5.15.0+dfsg1+~cs20.10.9.3-15.15.0+dfsg1+~cs20.10.9.3-1+deb12u15.15.0+dfsg1+~cs20.10.9.3-1+deb12u25.15.0+dfsg1+~cs20.10.9.3-1+deb12u35.15.0+dfsg1+~cs20.10.9.3-1+deb12u4 Show 39 moreShow less5.19.1+dfsg1+~cs20.10.9.5-15.19.1+dfsg1+~cs20.10.9.5-25.22.1+dfsg1+~cs20.10.10.2-15.26.3+dfsg1+~cs23.10.12-15.26.3+dfsg1+~cs23.10.12-25.26.3+dfsg1+~cs23.10.12-35.28.0+dfsg1+~cs23.11.12.3-15.28.0+dfsg1+~cs23.11.12.3-25.28.2+dfsg1+~cs23.11.12.3-15.28.2+dfsg1+~cs23.11.12.3-25.28.2+dfsg1+~cs23.11.12.3-35.28.2+dfsg1+~cs23.11.12.3-45.28.2+dfsg1+~cs23.11.12.3-55.28.2+dfsg1+~cs23.11.12.3-65.28.4+dfsg1+~cs23.12.11-15.28.4+dfsg1+~cs23.12.11-27.1.0+dfsg1+~cs24.12.10-17.15.0+dfsg+~cs3.2.0-17.15.0+dfsg+~cs3.2.0-37.16.0+dfsg+~cs3.2.0-17.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-17.2.3+dfsg1+~cs24.12.11-17.2.3+dfsg1+~cs24.12.11-27.24.5+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-27.24.6+dfsg+~cs3.2.0-37.3.0+dfsg1+~cs24.12.11-17.3.0+dfsg1+~cs24.12.11-28.10.2+dfsg+~cs3.2.2-18.12.1+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-28.12.4+dfsg+~cs3.2.5-18.5.0+dfsg+~cs3.2.0-18.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 | None known |
node-undiciDebian:13 | All versions, plus listed versions 7.15.0+dfsg+~cs3.2.0-17.15.0+dfsg+~cs3.2.0-37.16.0+dfsg+~cs3.2.0-17.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-1 Show 15 moreShow less7.24.5+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-27.24.6+dfsg+~cs3.2.0-37.3.0+dfsg1+~cs24.12.11-17.3.0+dfsg1+~cs24.12.11-28.10.2+dfsg+~cs3.2.2-18.12.1+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-28.12.4+dfsg+~cs3.2.5-18.5.0+dfsg+~cs3.2.0-18.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 | None known |
node-undiciDebian:14 | All versions, plus listed versions 7.15.0+dfsg+~cs3.2.0-17.15.0+dfsg+~cs3.2.0-37.16.0+dfsg+~cs3.2.0-17.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-1 Show 15 moreShow less7.24.5+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-27.24.6+dfsg+~cs3.2.0-37.3.0+dfsg1+~cs24.12.11-17.3.0+dfsg1+~cs24.12.11-28.10.2+dfsg+~cs3.2.2-18.12.1+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-28.12.4+dfsg+~cs3.2.5-18.5.0+dfsg+~cs3.2.0-18.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 | None known |
nodejs26Red Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:26.13.1-0.1.hum1 | 1:26.13.1-0.1.hum1 |
nodejs26-binRed Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:26.13.1-0.1.hum1 | 1:26.13.1-0.1.hum1 |
nodejs26-develRed Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:26.13.1-0.1.hum1 | 1:26.13.1-0.1.hum1 |
nodejs26-docsRed Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:26.13.1-0.1.hum1 | 1:26.13.1-0.1.hum1 |
nodejs26-full-i18nRed Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:26.13.1-0.1.hum1 | 1:26.13.1-0.1.hum1 |
nodejs26-libsRed Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:26.13.1-0.1.hum1 | 1:26.13.1-0.1.hum1 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
nodejs26-npmRed Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:11.20.0-1.26.13.1.0.1.hum1 | 1:11.20.0-1.26.13.1.0.1.hum1 |
nodejs26-npm-binRed Hat:hummingbird:1 From an advisory covering 16 CVEs | before 1:26.13.1-0.1.hum1 | 1:26.13.1-0.1.hum1 |
node-undiciUbuntu:24.04:LTS | All versions, plus listed versions 5.22.1+dfsg1+~cs20.10.10.2-1ubuntu15.26.3+dfsg1+~cs23.10.12-2 | None known |
node-undiciUbuntu:26.10 | All versions, plus listed versions 7.18.2+dfsg+~cs3.2.0-1build17.24.6+dfsg+~cs3.2.0-38.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 | None known |
node-undiciUbuntu:26.04:LTS | All versions, plus listed versions 7.3.0+dfsg1+~cs24.12.11-27.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-17.18.2+dfsg+~cs3.2.0-1build1 | None known |
What each source reports
CVE List Score used 7.4
undici vulnerable to cache poisoning and cross-user disclosure via intermediate redirect hops
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
- Record
CVE-2026-116592- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-346, CWE-524
- Updated
- 2026-11-10
EUVDEUVD-2026-118180 7.4
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
- Record
EUVD-2026-118180- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-10
NVD 7.4
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
- Record
CVE-2026-116592- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-346, CWE-524
- Updated
- 2026-11-06
OSV 7.4
undici vulnerable to cache poisoning and cross-user disclosure via intermediate redirect hops
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
- Record
CVE-2026-116592- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-346, CWE-524
- Updated
- 2026-11-07
OSVDEBIAN-CVE-2026-116592 7.4
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
- Record
DEBIAN-CVE-2026-116592- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-11
OSVRHSA-2026:99436 8.1
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:99436- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-13
OSVUBUNTU-CVE-2026-116592 7.4
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
- Record
UBUNTU-CVE-2026-116592- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-07
OSVAZL-113230No score
CVE-2026-116592 affecting package nodejs 24.22.1-1
undici is an HTTP client for Node.js. In versions 7.30.1 and 8.12.2 through 8.12.3, when an originless Agent composes the redirect and shared cache interceptors, undici decides whether to store the final response under the original request key by inspecting only the final redirect hop, which bypasses the earlier fix for CVE-2026-109829 that compared only the initial and final origins. A redirect that bounces through an untrusted origin and returns to the trusted origin is still cached under the trusted key, an intermediate hop's Vary is dropped so a response that varies on Authorization or Cookie can be served to a different user, and an intermediate hop's no-cache or default-uncacheable status is ignored so a non-storable redirect is laundered into a cacheable entry. An attacker who controls a redirect target from a trusted URL can poison the cached entry for that URL or have a private, per-user response served to a later caller. The issue is fixed in undici 7.30.2 and 8.12.4, and users should upgrade to one of those versions or later. As a workaround, compose the interceptors as cache then redirect, use per-origin dispatchers and cache stores, or disable shared caching on redirect-capable requests.
- Record
AZL-113230- Updated
- 2026-11-11
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected | CVE List, EUVD, OSV | |
| affected, aliases, references | OSV | |
| aliases, references | OSV | |
| affected, aliases, published, references | NVD, OSV | |
| cwes, severity, title | CVE List | |
| first indexed | EUVD |
Dates are when Every CVE recorded each change. Upstream dates may differ.
References
github.com/nodejs/undici/security/advisories/GHSA-mqg3-3v4r-cm32
cna.openjsf.org/security-advisories.html
nvd.nist.gov/vuln/detail/CVE-2026-116592
github.com/CVEProject/cvelistV5/tree/main/cves/2026/116xxx/CVE-2026-116592.json
security-tracker.debian.org/tracker/CVE-2026-116592
access.redhat.com/errata/RHSA-2026:99436
Show 73 moreShow less
images.redhat.com
access.redhat.com/security/cve/CVE-2026-123872
access.redhat.com/security/updates/classification
access.redhat.com/security/cve/CVE-2026-126051
access.redhat.com/security/cve/CVE-2026-123877
access.redhat.com/security/cve/CVE-2026-123874
access.redhat.com/security/cve/CVE-2026-123868
access.redhat.com/security/cve/CVE-2026-123864
access.redhat.com/security/cve/CVE-2026-123875
access.redhat.com/security/cve/CVE-2026-123866
access.redhat.com/security/cve/CVE-2026-123863
access.redhat.com/security/cve/CVE-2026-123871
access.redhat.com/security/cve/CVE-2026-123867
access.redhat.com/security/cve/CVE-2026-123865
access.redhat.com/security/cve/CVE-2026-123829
access.redhat.com/security/cve/CVE-2026-123862
access.redhat.com/security/cve/CVE-2026-123828
access.redhat.com/security/cve/CVE-2026-116630
access.redhat.com/security/cve/CVE-2026-120222
access.redhat.com/security/cve/CVE-2026-120423
access.redhat.com/security/cve/CVE-2026-120474
access.redhat.com/security/cve/CVE-2026-120415
access.redhat.com/security/cve/CVE-2026-116592
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_99436.json
bugzilla.redhat.com/show_bug.cgi?id=2568222
cve.org/CVERecord?id=CVE-2026-116592
bugzilla.redhat.com/show_bug.cgi?id=2571813
cve.org/CVERecord?id=CVE-2026-123828
nvd.nist.gov/vuln/detail/CVE-2026-123828
nodejs.org/en/blog/vulnerability/november-2026-security-releases
bugzilla.redhat.com/show_bug.cgi?id=2571829
cve.org/CVERecord?id=CVE-2026-123829
nvd.nist.gov/vuln/detail/CVE-2026-123829
bugzilla.redhat.com/show_bug.cgi?id=2571814
cve.org/CVERecord?id=CVE-2026-123862
nvd.nist.gov/vuln/detail/CVE-2026-123862
bugzilla.redhat.com/show_bug.cgi?id=2571842
cve.org/CVERecord?id=CVE-2026-123863
nvd.nist.gov/vuln/detail/CVE-2026-123863
bugzilla.redhat.com/show_bug.cgi?id=2571836
cve.org/CVERecord?id=CVE-2026-123864
nvd.nist.gov/vuln/detail/CVE-2026-123864
bugzilla.redhat.com/show_bug.cgi?id=2571831
cve.org/CVERecord?id=CVE-2026-123865
nvd.nist.gov/vuln/detail/CVE-2026-123865
bugzilla.redhat.com/show_bug.cgi?id=2571844
cve.org/CVERecord?id=CVE-2026-123866
nvd.nist.gov/vuln/detail/CVE-2026-123866
bugzilla.redhat.com/show_bug.cgi?id=2571835
cve.org/CVERecord?id=CVE-2026-123867
nvd.nist.gov/vuln/detail/CVE-2026-123867
bugzilla.redhat.com/show_bug.cgi?id=2571834
cve.org/CVERecord?id=CVE-2026-123868
nvd.nist.gov/vuln/detail/CVE-2026-123868
bugzilla.redhat.com/show_bug.cgi?id=2571841
cve.org/CVERecord?id=CVE-2026-123871
nvd.nist.gov/vuln/detail/CVE-2026-123871
bugzilla.redhat.com/show_bug.cgi?id=2571847
cve.org/CVERecord?id=CVE-2026-123872
nvd.nist.gov/vuln/detail/CVE-2026-123872
bugzilla.redhat.com/show_bug.cgi?id=2571849
cve.org/CVERecord?id=CVE-2026-123874
nvd.nist.gov/vuln/detail/CVE-2026-123874
bugzilla.redhat.com/show_bug.cgi?id=2571848
cve.org/CVERecord?id=CVE-2026-123875
nvd.nist.gov/vuln/detail/CVE-2026-123875
bugzilla.redhat.com/show_bug.cgi?id=2571854
cve.org/CVERecord?id=CVE-2026-123877
nvd.nist.gov/vuln/detail/CVE-2026-123877
bugzilla.redhat.com/show_bug.cgi?id=2571861
cve.org/CVERecord?id=CVE-2026-126051
nvd.nist.gov/vuln/detail/CVE-2026-126051
ubuntu.com/security/CVE-2026-116592