CVE-2025-22150
published 2025-01-21CVE-2025-22150: Undici is an HTTP/1.1 client. Starting in version 4.5.0 and prior to versions 5.28.5, 6.21.1, and 7.2.3, undici uses `Math.random()` to choose the boundary for…
PriorityP336medium6.8CVSS 3.1
AVNACHPRNUIRSUCHIHAN
EPSS
0.74%
50.2th percentile
Undici is an HTTP/1.1 client. Starting in version 4.5.0 and prior to versions 5.28.5, 6.21.1, and 7.2.3, undici uses `Math.random()` to choose the boundary for a multipart/form-data request. It is known that the output of `Math.random()` can be predicted if several of its generated values are known. If there is a mechanism in an app that sends multipart requests to an attacker-controlled website, they can use this to leak the necessary values. Therefore, an attacker can tamper with the requests going to the backend APIs if certain conditions are met. This is fixed in versions 5.28.5, 6.21.1, and 7.2.3. As a workaround, do not issue multipart requests to attacker controlled servers.
Affected
7 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | node-undici | < node-undici 7.3.0+dfsg1+~cs24.12.11-1 (forky) | node-undici 7.3.0+dfsg1+~cs24.12.11-1 (forky) |
| nodejs | undici | — | — |
| nodejs | undici | — | — |
| nodejs | undici | — | — |
| nodejs | undici | >= 4.5.0 < 5.28.5 | 5.28.5 |
| nodejs | undici | >= 6.0.0 < 6.21.1 | 6.21.1 |
| nodejs | undici | >= 7.0.0 < 7.2.3 | 7.2.3 |
CVSS provenance
nvdv3.16.8MEDIUMCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
osv6.8MEDIUM
vendor_debian6.8MEDIUM
vendor_redhat6.8MEDIUM
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
Use of Insufficiently Random Values in undici
osv·2025-01-21
CVE-2025-22150 [MEDIUM] Use of Insufficiently Random Values in undici
Use of Insufficiently Random Values in undici
### Impact
[Undici `fetch()` uses Math.random()](https://github.com/nodejs/undici/blob/8b06b8250907d92fead664b3368f1d2aa27c1f35/lib/web/fetch/body.js#L113) to choose the boundary for a multipart/form-data request. It is known that the output of Math.random() can be predicted if several of its generated values are known.
If there is a mechanism in an app that sends multipart requests to an attacker-controlled website, they can use this to leak the necessary values. Therefore, An attacker can tamper with the requests going to the backend APIs if certain conditions are met.
### Patches
This is fixed in 5.28.5; 6.21.1; 7.2.3.
### Workarounds
Do not issue multipart requests to attacker controlled servers.
### References
* https://hackerone.
GHSA
Use of Insufficiently Random Values in undici
ghsa·2025-01-21
CVE-2025-22150 [MEDIUM] CWE-330 Use of Insufficiently Random Values in undici
Use of Insufficiently Random Values in undici
### Impact
[Undici `fetch()` uses Math.random()](https://github.com/nodejs/undici/blob/8b06b8250907d92fead664b3368f1d2aa27c1f35/lib/web/fetch/body.js#L113) to choose the boundary for a multipart/form-data request. It is known that the output of Math.random() can be predicted if several of its generated values are known.
If there is a mechanism in an app that sends multipart requests to an attacker-controlled website, they can use this to leak the necessary values. Therefore, An attacker can tamper with the requests going to the backend APIs if certain conditions are met.
### Patches
This is fixed in 5.28.5; 6.21.1; 7.2.3.
### Workarounds
Do not issue multipart requests to attacker controlled servers.
### References
* https://hackerone.
OSV
CVE-2025-22150: Undici is an HTTP/1
osv·2025-01-21·CVSS 6.8
CVE-2025-22150 [MEDIUM] CVE-2025-22150: Undici is an HTTP/1
Undici is an HTTP/1.1 client. Starting in version 4.5.0 and prior to versions 5.28.5, 6.21.1, and 7.2.3, undici uses `Math.random()` to choose the boundary for a multipart/form-data request. It is known that the output of `Math.random()` can be predicted if several of its generated values are known. If there is a mechanism in an app that sends multipart requests to an attacker-controlled website, they can use this to leak the necessary values. Therefore, an attacker can tamper with the requests going to the backend APIs if certain conditions are met. This is fixed in versions 5.28.5, 6.21.1, and 7.2.3. As a workaround, do not issue multipart requests to attacker controlled servers.
Red Hat
undici: Undici Uses Insufficiently Random Values
vendor_redhat·2025-01-21·CVSS 6.8
CVE-2025-22150 [MEDIUM] CWE-330 undici: Undici Uses Insufficiently Random Values
undici: Undici Uses Insufficiently Random Values
Undici is an HTTP/1.1 client. Starting in version 4.5.0 and prior to versions 5.28.5, 6.21.1, and 7.2.3, undici uses `Math.random()` to choose the boundary for a multipart/form-data request. It is known that the output of `Math.random()` can be predicted if several of its generated values are known. If there is a mechanism in an app that sends multipart requests to an attacker-controlled website, they can use this to leak the necessary values. Therefore, an attacker can tamper with the requests going to the backend APIs if certain conditions are met. This is fixed in versions 5.28.5, 6.21.1, and 7.2.3. As a workaround, do not issue multipart requests to attacker controlled servers.
A flaw was found in the undici package for Node.js. Undici
Debian
CVE-2025-22150: node-undici - Undici is an HTTP/1.1 client. Starting in version 4.5.0 and prior to versions 5....
vendor_debian·2025·CVSS 6.8
CVE-2025-22150 [MEDIUM] CVE-2025-22150: node-undici - Undici is an HTTP/1.1 client. Starting in version 4.5.0 and prior to versions 5....
Undici is an HTTP/1.1 client. Starting in version 4.5.0 and prior to versions 5.28.5, 6.21.1, and 7.2.3, undici uses `Math.random()` to choose the boundary for a multipart/form-data request. It is known that the output of `Math.random()` can be predicted if several of its generated values are known. If there is a mechanism in an app that sends multipart requests to an attacker-controlled website, they can use this to leak the necessary values. Therefore, an attacker can tamper with the requests going to the backend APIs if certain conditions are met. This is fixed in versions 5.28.5, 6.21.1, and 7.2.3. As a workaround, do not issue multipart requests to attacker controlled servers.
Scope: local
bookworm: open
forky: resolved (fixed in 7.3.0+dfsg1+~cs24.12.11-1)
sid: resolved (fixed in 7.3.
No detection rules found.
No public exploits indexed.
https://blog.securityevaluators.com/hacking-the-javascript-lottery-80cc437e3b7fhttps://github.com/nodejs/undici/blob/8b06b8250907d92fead664b3368f1d2aa27c1f35/lib/web/fetch/body.js#L113https://github.com/nodejs/undici/commit/711e20772764c29f6622ddc937c63b6eefdf07d0https://github.com/nodejs/undici/commit/c2d78cd19fe4f4c621424491e26ce299e65e934ahttps://github.com/nodejs/undici/commit/c3acc6050b781b827d80c86cbbab34f14458d385https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975https://hackerone.com/reports/2913312
2025-01-21
Published