Every CVE Search/ Get API key

CVE-2026-109841

undici vulnerable to Subresource Integrity bypass via non-lowercase algorithm tokens

5.9 MediumFix available

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its fetch() implementation verifies Subresource Integrity metadata by matching the algorithm token against a lowercase-only set, even though the SRI specification defines the token by its ASCII-lowercase form, so a valid but non-lowercase token such as an uppercase or mixed-case SHA256 is treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server returning a body that does not match the pinned digest passes the check. An attacker who controls only the response body can therefore deliver attacker-controlled bytes to an application that pinned a valid uppercase or mixed-case SRI token, with no integrity error, affecting response integrity only. The issue is fixed in undici 7.30.1 and 8.12.2, which normalize the algorithm token to ASCII lowercase before validation, and users should upgrade to one of those versions or later. As a workaround, use lowercase algorithm tokens such as sha256, sha384, or sha512 in integrity metadata.

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
None
Integrity
High
Availability
None

Exploit likelihood

0.25%Unchanged since Oct 16, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.9

undici vulnerable to Subresource Integrity bypass via non-lowercase algorithm tokens

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its fetch() implementation verifies Subresource Integrity metadata by matching the algorithm token against a lowercase-only set, even though the SRI specification defines the token by its ASCII-lowercase form, so a valid but non-lowercase token such as an uppercase or mixed-case SHA256 is treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server returning a body that does not match the pinned digest passes the check. An attacker who controls only the response body can therefore deliver attacker-controlled bytes to an application that pinned a valid uppercase or mixed-case SRI token, with no integrity error, affecting response integrity only. The issue is fixed in undici 7.30.1 and 8.12.2, which normalize the algorithm token to ASCII lowercase before validation, and users should upgrade to one of those versions or later. As a workaround, use lowercase algorithm tokens such as sha256, sha384, or sha512 in integrity metadata.

Record
CVE-2026-109841
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-178
Updated
2026-11-02
EUVDEUVD-2026-102305 5.9

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its fetch() implementation verifies Subresource Integrity metadata by matching the algorithm token against a lowercase-only set, even though the SRI specification defines the token by its ASCII-lowercase form, so a valid but non-lowercase token such as an uppercase or mixed-case SHA256 is treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server returning a body that does not match the pinned digest passes the check. An attacker who controls only the response body can therefore deliver attacker-controlled bytes to an application that pinned a valid uppercase or mixed-case SRI token, with no integrity error, affecting response integrity only. The issue is fixed in undici 7.30.1 and 8.12.2, which normalize the algorithm token to ASCII lowercase before validation, and users should upgrade to one of those versions or later. As a workaround, use lowercase algorithm tokens such as sha256, sha384, or sha512 in integrity metadata.

Record
EUVD-2026-102305
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-f72v-6w45-q472 5.9

undici vulnerable to Subresource Integrity bypass via non-lowercase algorithm tokens

Impact

undici's fetch() verifies Subresource Integrity (SRI) metadata by looking up the algorithm token in a lowercase-only set, but the SRI specification defines a valid token by its ASCII-lowercase form. A correct but non-lowercase token such as SHA256-... or Sha256-... is therefore treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server that returns a body different from the pinned digest passes the check.

An application that pins a response with a valid uppercase or mixed-case SRI token receives attacker-controlled bytes with no integrity error. The attacker needs only to control the response body, not the application's integrity metadata. The issue affects response integrity only. The regression was introduced in undici 7.15.0; releases 7.14.0 and earlier lowercase the token and are not affected.

Patches

Upgrade to 7.30.1 or 8.12.2. undici now normalizes the algorithm token to ASCII lowercase before validating it and before selecting the strongest algorithm, so case variants of SHA-256, SHA-384, and SHA-512 are verified correctly.

Workarounds

Use lowercase algorithm tokens (sha256, sha384, sha512) in integrity metadata.

Record
GHSA-f72v-6w45-q472
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-178
Updated
2026-11-02
NVD 5.9

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its fetch() implementation verifies Subresource Integrity metadata by matching the algorithm token against a lowercase-only set, even though the SRI specification defines the token by its ASCII-lowercase form, so a valid but non-lowercase token such as an uppercase or mixed-case SHA256 is treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server returning a body that does not match the pinned digest passes the check. An attacker who controls only the response body can therefore deliver attacker-controlled bytes to an application that pinned a valid uppercase or mixed-case SRI token, with no integrity error, affecting response integrity only. The issue is fixed in undici 7.30.1 and 8.12.2, which normalize the algorithm token to ASCII lowercase before validation, and users should upgrade to one of those versions or later. As a workaround, use lowercase algorithm tokens such as sha256, sha384, or sha512 in integrity metadata.

Record
CVE-2026-109841
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-178
Updated
2026-11-02
OSV 5.9

undici vulnerable to Subresource Integrity bypass via non-lowercase algorithm tokens

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its fetch() implementation verifies Subresource Integrity metadata by matching the algorithm token against a lowercase-only set, even though the SRI specification defines the token by its ASCII-lowercase form, so a valid but non-lowercase token such as an uppercase or mixed-case SHA256 is treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server returning a body that does not match the pinned digest passes the check. An attacker who controls only the response body can therefore deliver attacker-controlled bytes to an application that pinned a valid uppercase or mixed-case SRI token, with no integrity error, affecting response integrity only. The issue is fixed in undici 7.30.1 and 8.12.2, which normalize the algorithm token to ASCII lowercase before validation, and users should upgrade to one of those versions or later. As a workaround, use lowercase algorithm tokens such as sha256, sha384, or sha512 in integrity metadata.

Record
CVE-2026-109841
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-178
Updated
2026-11-02
OSVDEBIAN-CVE-2026-109841 7.5

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its fetch() implementation verifies Subresource Integrity metadata by matching the algorithm token against a lowercase-only set, even though the SRI specification defines the token by its ASCII-lowercase form, so a valid but non-lowercase token such as an uppercase or mixed-case SHA256 is treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server returning a body that does not match the pinned digest passes the check. An attacker who controls only the response body can therefore deliver attacker-controlled bytes to an application that pinned a valid uppercase or mixed-case SRI token, with no integrity error, affecting response integrity only. The issue is fixed in undici 7.30.1 and 8.12.2, which normalize the algorithm token to ASCII lowercase before validation, and users should upgrade to one of those versions or later. As a workaround, use lowercase algorithm tokens such as sha256, sha384, or sha512 in integrity metadata.

Record
DEBIAN-CVE-2026-109841
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
Show 9 moreShow less
OSVGHSA-f72v-6w45-q472 5.9

undici vulnerable to Subresource Integrity bypass via non-lowercase algorithm tokens

Impact

undici's fetch() verifies Subresource Integrity (SRI) metadata by looking up the algorithm token in a lowercase-only set, but the SRI specification defines a valid token by its ASCII-lowercase form. A correct but non-lowercase token such as SHA256-... or Sha256-... is therefore treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server that returns a body different from the pinned digest passes the check.

An application that pins a response with a valid uppercase or mixed-case SRI token receives attacker-controlled bytes with no integrity error. The attacker needs only to control the response body, not the application's integrity metadata. The issue affects response integrity only. The regression was introduced in undici 7.15.0; releases 7.14.0 and earlier lowercase the token and are not affected.

Patches

Upgrade to 7.30.1 or 8.12.2. undici now normalizes the algorithm token to ASCII lowercase before validating it and before selecting the strongest algorithm, so case variants of SHA-256, SHA-384, and SHA-512 are verified correctly.

Workarounds

Use lowercase algorithm tokens (sha256, sha384, sha512) in integrity metadata.

Record
GHSA-f72v-6w45-q472
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-178
Updated
2026-11-02
OSVRHSA-2026:84657 7.5

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:84657
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVRHSA-2026:84706 7.5

Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

Record
RHSA-2026:84706
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-109841 7.5

CVE-2026-109841 in undici - Patched by Root

Root has patched CVE-2026-109841 in the undici package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-109841
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-06
OSVUBUNTU-CVE-2026-109841 5.9

undici is an HTTP client library for Node.js. In versions 7.15.0 through 7.30.0 and 8.0.0 through 8.12.1, its fetch() implementation verifies Subresource Integrity metadata by matching the algorithm token against a lowercase-only set, even though the SRI specification defines the token by its ASCII-lowercase form, so a valid but non-lowercase token such as an uppercase or mixed-case SHA256 is treated as unknown and skipped. When no recognized algorithm remains, undici treats the integrity list as empty and accepts the response, so a server returning a body that does not match the pinned digest passes the check. An attacker who controls only the response body can therefore deliver attacker-controlled bytes to an application that pinned a valid uppercase or mixed-case SRI token, with no integrity error, affecting response integrity only. The issue is fixed in undici 7.30.1 and 8.12.2, which normalize the algorithm token to ASCII lowercase before validation, and users should upgrade to one of those versions or later. As a workaround, use lowercase algorithm tokens such as sha256, sha384, or sha512 in integrity metadata.

Record
UBUNTU-CVE-2026-109841
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVCLSA-2026-1793099993 No score

TuxCare security update for undici (3 CVEs)

TuxCare rebuilt undici to address 3 CVEs. Fixed in 7.24.4-tuxcare.4.

Record
CLSA-2026-1793099993
Updated
2026-11-02
OSVCLSA-2026-1793809357 No score

TuxCare security update for undici (3 CVEs)

TuxCare rebuilt undici to address 3 CVEs. Fixed in 7.28.0-tuxcare.9.

Record
CLSA-2026-1793809357
Updated
2026-11-04
OSVCLSA-2026-1793809399 No score

TuxCare security update for undici (3 CVEs)

TuxCare rebuilt undici to address 3 CVEs. Fixed in 7.29.0-tuxcare.8.

Record
CLSA-2026-1793809399
Updated
2026-11-04
OSVCLSA-2026-1793973403 No score

TuxCare security update for undici (7 CVEs)

TuxCare rebuilt undici to address 7 CVEs. Fixed in 7.29.1-tuxcare.1.

Record
CLSA-2026-1793973403
Updated
2026-11-06

Affected products

Affected packages

Affected packages
PackageAffectedFixed
undici
npm
7.15.0 up to 7.30.1
7.30.1
undici
npm
8.0.0 up to 8.12.2
8.12.2
undici
TuxCare:npm
From an advisory covering 3 CVEs
7.24.4-tuxcare.0 up to 7.24.4-tuxcare.4, plus listed versions
7.24.47.24.4-tuxcare.17.24.4-tuxcare.27.24.4-tuxcare.3
7.24.4-tuxcare.4
undici
TuxCare:npm
From an advisory covering 3 CVEs
7.28.0-tuxcare.0 up to 7.28.0-tuxcare.9, plus listed versions
7.28.07.28.0-tuxcare.17.28.0-tuxcare.27.28.0-tuxcare.37.28.0-tuxcare.4
Show 4 moreShow less
7.28.0-tuxcare.57.28.0-tuxcare.67.28.0-tuxcare.77.28.0-tuxcare.8
7.28.0-tuxcare.9
undici
TuxCare:npm
From an advisory covering 3 CVEs
7.29.0-tuxcare.0 up to 7.29.0-tuxcare.8, plus listed versions
7.29.07.29.0-tuxcare.17.29.0-tuxcare.27.29.0-tuxcare.37.29.0-tuxcare.47.29.0-tuxcare.57.29.0-tuxcare.67.29.0-tuxcare.7
7.29.0-tuxcare.8
undici
TuxCare:npm
From an advisory covering 7 CVEs
7.29.1-tuxcare.0 up to 7.29.1-tuxcare.1, plus listed versions
7.29.1
7.29.1-tuxcare.1
node-undici
Debian:14
before 8.12.2+dfsg+~cs3.2.3-1, 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 12 moreShow less
7.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.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
8.12.2+dfsg+~cs3.2.3-1
nodejs26
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:26.11.1-0.4.hum1
0:26.11.1-0.4.hum1
nodejs26-bin
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:26.11.1-0.4.hum1
0:26.11.1-0.4.hum1
nodejs26-devel
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:26.11.1-0.4.hum1
0:26.11.1-0.4.hum1
Show 20 moreShow less
Affected packages
PackageAffectedFixed
nodejs26-docs
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:26.11.1-0.4.hum1
0:26.11.1-0.4.hum1
nodejs26-full-i18n
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:26.11.1-0.4.hum1
0:26.11.1-0.4.hum1
nodejs26-libs
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:26.11.1-0.4.hum1
0:26.11.1-0.4.hum1
nodejs26-npm
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:11.20.0-1.26.11.1.0.4.hum1
0:11.20.0-1.26.11.1.0.4.hum1
nodejs26-npm-bin
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:26.11.1-0.4.hum1
0:26.11.1-0.4.hum1
v8-14.6-devel
Red Hat:hummingbird:1
From an advisory covering 9 CVEs
before 0:14.6.202.34-1.26.11.1.0.4.hum1
0:14.6.202.34-1.26.11.1.0.4.hum1
nodejs24
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:24.21.0-1.5.hum1
0:24.21.0-1.5.hum1
nodejs24-bin
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:24.21.0-1.5.hum1
0:24.21.0-1.5.hum1
nodejs24-devel
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:24.21.0-1.5.hum1
0:24.21.0-1.5.hum1
nodejs24-docs
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:24.21.0-1.5.hum1
0:24.21.0-1.5.hum1
nodejs24-full-i18n
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:24.21.0-1.5.hum1
0:24.21.0-1.5.hum1
nodejs24-libs
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:24.21.0-1.5.hum1
0:24.21.0-1.5.hum1
nodejs24-npm
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:11.19.0-1.24.21.0.1.5.hum1
0:11.19.0-1.24.21.0.1.5.hum1
nodejs24-npm-bin
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:24.21.0-1.5.hum1
0:24.21.0-1.5.hum1
v8-13.6-devel
Red Hat:hummingbird:1
From an advisory covering 8 CVEs
before 0:13.6.233.17-1.24.21.0.1.5.hum1
0:13.6.233.17-1.24.21.0.1.5.hum1
undici
Root:npm
before 8.10.2-aikido.4
8.10.2-aikido.4
@rootio/undici
Root:npm
before 8.10.2-root.io.4
8.10.2-root.io.4
node-undici
Ubuntu: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-undici
Ubuntu: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-undici
Ubuntu: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

History

History
RecordedChangedSources
affected, aliasesOSV
affected
affected, aliasesOSV
affected, aliases, factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-109841 is a medium vulnerability (CVSS 5.9) in Nodejs Undici, published October 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.25%, the 16th percentile. Fixed in undici 7.30.1.

References

Show 64 moreShow less
MoveEnter Open