Vulnerability · Published Jan 21, 2025 · Assigned by GitHub_M
CVE-2025-22150Undici Uses Insufficiently Random Values
Medium 6.8
In plain English
A medium-severity weak randomness in undici from nodejs. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.8% (higher than 56% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
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 packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux:8 | nodejs | 1:22.13.1-1.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:8 | nodejs | 1:20.18.2-1.module_el8.10.0+3958+472a6467 | ALSA-2025:1351 |
| AlmaLinux:8 | nodejs | 1:18.20.6-1.module_el8.10.0+3960+fcfbf683 | ALSA-2025:1582 |
| AlmaLinux:9 | nodejs | 1:20.18.2-1.module_el9.5.0+137+381f3eaf | ALSA-2025:1443 |
| AlmaLinux:9 | nodejs | 1:18.20.6-1.module_el9.5.0+136+92f38f3c | ALSA-2025:1446 |
| AlmaLinux:9 | nodejs | 1:22.13.1-1.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| AlmaLinux:8 | nodejs-devel | 1:18.20.6-1.module_el8.10.0+3960+fcfbf683 | ALSA-2025:1582 |
| AlmaLinux:8 | nodejs-devel | 1:20.18.2-1.module_el8.10.0+3958+472a6467 | ALSA-2025:1351 |
| AlmaLinux:8 | nodejs-devel | 1:22.13.1-1.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:9 | nodejs-devel | 1:20.18.2-1.module_el9.5.0+137+381f3eaf | ALSA-2025:1443 |
| AlmaLinux:9 | nodejs-devel | 1:18.20.6-1.module_el9.5.0+136+92f38f3c | ALSA-2025:1446 |
| AlmaLinux:9 | nodejs-devel | 1:22.13.1-1.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| AlmaLinux:8 | nodejs-docs | 1:20.18.2-1.module_el8.10.0+3958+472a6467 | ALSA-2025:1351 |
| AlmaLinux:8 | nodejs-docs | 1:22.13.1-1.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:8 | nodejs-docs | 1:18.20.6-1.module_el8.10.0+3960+fcfbf683 | ALSA-2025:1582 |
| AlmaLinux:9 | nodejs-docs | 1:22.13.1-1.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| AlmaLinux:9 | nodejs-docs | 1:20.18.2-1.module_el9.5.0+137+381f3eaf | ALSA-2025:1443 |
| AlmaLinux:9 | nodejs-docs | 1:18.20.6-1.module_el9.5.0+136+92f38f3c | ALSA-2025:1446 |
| AlmaLinux:8 | nodejs-full-i18n | 1:20.18.2-1.module_el8.10.0+3958+472a6467 | ALSA-2025:1351 |
| AlmaLinux:8 | nodejs-full-i18n | 1:22.13.1-1.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:8 | nodejs-full-i18n | 1:18.20.6-1.module_el8.10.0+3960+fcfbf683 | ALSA-2025:1582 |
| AlmaLinux:9 | nodejs-full-i18n | 1:20.18.2-1.module_el9.5.0+137+381f3eaf | ALSA-2025:1443 |
| AlmaLinux:9 | nodejs-full-i18n | 1:18.20.6-1.module_el9.5.0+136+92f38f3c | ALSA-2025:1446 |
| AlmaLinux:9 | nodejs-full-i18n | 1:22.13.1-1.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| AlmaLinux:8 | nodejs-libs | 1:22.13.1-1.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:9 | nodejs-libs | 1:22.13.1-1.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| AlmaLinux:8 | nodejs-nodemon | 3.0.1-1.module_el8.8.0+3613+1ed8c91d | ALSA-2025:1351 |
| AlmaLinux:8 | nodejs-nodemon | 3.0.1-1.module_el8.8.0+3613+1ed8c91d | ALSA-2025:1611 |
| AlmaLinux:8 | nodejs-nodemon | 3.0.1-1.module_el8.8.0+3613+1ed8c91d | ALSA-2025:1582 |
| AlmaLinux:9 | nodejs-nodemon | 3.0.1-1.module_el9.5.0+136+92f38f3c | ALSA-2025:1613 |
| AlmaLinux:9 | nodejs-nodemon | 3.0.1-1.module_el9.5.0+136+92f38f3c | ALSA-2025:1446 |
| AlmaLinux:9 | nodejs-nodemon | 3.0.1-1.module_el9.2.0+36+853e48f5 | ALSA-2025:1443 |
| AlmaLinux:8 | nodejs-packaging | 2021.06-4.module_el8.7.0+3343+ea2b7901 | ALSA-2025:1351 |
| AlmaLinux:8 | nodejs-packaging | 2021.06-4.module_el8.10.0+3961+6a788e57 | ALSA-2025:1582 |
| AlmaLinux:8 | nodejs-packaging | 2021.06-4.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:9 | nodejs-packaging | 2021.06-4.module_el9.3.0+88+29afeaa2 | ALSA-2025:1443 |
| AlmaLinux:9 | nodejs-packaging | 2021.06-4.module_el9.5.0+136+92f38f3c | ALSA-2025:1446 |
| AlmaLinux:9 | nodejs-packaging | 2021.06-4.module_el9.5.0+136+92f38f3c | ALSA-2025:1613 |
| AlmaLinux:8 | nodejs-packaging-bundler | 2021.06-4.module_el8.10.0+3961+6a788e57 | ALSA-2025:1582 |
| AlmaLinux:8 | nodejs-packaging-bundler | 2021.06-4.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:8 | nodejs-packaging-bundler | 2021.06-4.module_el8.10.0+3958+472a6467 | ALSA-2025:1351 |
| AlmaLinux:9 | nodejs-packaging-bundler | 2021.06-4.module_el9.5.0+124+df88fe49 | ALSA-2025:1443 |
| AlmaLinux:9 | nodejs-packaging-bundler | 2021.06-4.module_el9.5.0+124+df88fe49 | ALSA-2025:1446 |
| AlmaLinux:9 | nodejs-packaging-bundler | 2021.06-4.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| AlmaLinux:8 | npm | 1:10.8.2-1.18.20.6.1.module_el8.10.0+3960+fcfbf683 | ALSA-2025:1582 |
| AlmaLinux:8 | npm | 1:10.8.2-1.20.18.2.1.module_el8.10.0+3958+472a6467 | ALSA-2025:1351 |
| AlmaLinux:8 | npm | 1:10.9.2-1.22.13.1.1.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:9 | npm | 1:10.9.2-1.22.13.1.1.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| AlmaLinux:9 | npm | 1:10.8.2-1.20.18.2.1.module_el9.5.0+137+381f3eaf | ALSA-2025:1443 |
| AlmaLinux:9 | npm | 1:10.8.2-1.18.20.6.1.module_el9.5.0+136+92f38f3c | ALSA-2025:1446 |
| AlmaLinux:8 | v8-12.4-devel | 3:12.4.254.21-1.22.13.1.1.module_el8.10.0+3961+6a788e57 | ALSA-2025:1611 |
| AlmaLinux:9 | v8-12.4-devel | 3:12.4.254.21-1.22.13.1.1.module_el9.5.0+139+09296491 | ALSA-2025:1613 |
| Alpine:v3.21 | nodejs | 22.13.1-r0 | ALPINE-CVE-2025-22150 |
| Alpine:v3.22 | nodejs | 22.13.1-r0 | ALPINE-CVE-2025-22150 |
| Alpine:v3.23 | nodejs | 22.13.1-r0 | ALPINE-CVE-2025-22150 |
| Alpine:v3.24 | nodejs | 22.13.1-r0 | ALPINE-CVE-2025-22150 |
| Debian:12 | node-undici | no fix listed | DEBIAN-CVE-2025-22150 |
| Debian:13 | node-undici | 7.3.0+dfsg1+~cs24.12.11-1 | DEBIAN-CVE-2025-22150 |
| Debian:14 | node-undici | 7.3.0+dfsg1+~cs24.12.11-1 | DEBIAN-CVE-2025-22150 |
| Rocky Linux:8 | nodejs | 1:18.20.6-1.module+el8.10.0+1934+a521c41f | RLSA-2025:1582 |
| Rocky Linux:8 | nodejs | 1:22.13.1-1.module+el8.10.0+1935+d3cbe60f | RLSA-2025:1611 |
| Rocky Linux:8 | nodejs | 1:20.18.2-1.module+el8.10.0+1932+2f13f218 | RLSA-2025:1351 |
| Rocky Linux:8 | nodejs-nodemon | 0:3.0.1-1.module+el8.10.0+1666+930e28e8 | RLSA-2025:1582 |
| Rocky Linux:8 | nodejs-nodemon | 0:3.0.1-1.module+el8.10.0+1666+930e28e8 | RLSA-2025:1351 |
| Rocky Linux:8 | nodejs-nodemon | 0:3.0.1-1.module+el8.10.0+1666+930e28e8 | RLSA-2025:1611 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.5.0+31770+0da7192d | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32144+1d29a396 | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32322+a8b1fd01 | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.5.0+31770+0da7192d | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32045+2e5d342d | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32143+ae966e5b | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32185+bd121a25 | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32322+a8b1fd01 | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32045+2e5d342d | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32143+ae966e5b | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32144+1d29a396 | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-nodemon | 0:3.0.1-1.module+el9.6.0+32185+bd121a25 | RLSA-2025:1613 |
| Rocky Linux:8 | nodejs-packaging | 0:2021.06-4.module+el8.10.0+1667+4a788d89 | RLSA-2025:1611 |
| Rocky Linux:8 | nodejs-packaging | 0:2021.06-4.module+el8.10.0+1667+4a788d89 | RLSA-2025:1582 |
| Rocky Linux:8 | nodejs-packaging | 0:2021.06-4.module+el8.10.0+1667+4a788d89 | RLSA-2025:1351 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32045+2e5d342d | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32048+5323bb50 | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32143+ae966e5b | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32144+1d29a396 | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32185+bd121a25 | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32322+a8b1fd01 | RLSA-2025:1613 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32185+bd121a25 | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32144+1d29a396 | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32143+ae966e5b | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32048+5323bb50 | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32045+2e5d342d | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.5.0+31770+0da7192d | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.6.0+32322+a8b1fd01 | RLSA-2025:1446 |
| Rocky Linux:9 | nodejs-packaging | 0:2021.06-4.module+el9.5.0+31770+0da7192d | RLSA-2025:1613 |
| Ubuntu:24.04:LTS | node-undici | no fix listed | UBUNTU-CVE-2025-22150 |
| Ubuntu:25.10 | node-undici | no fix listed | UBUNTU-CVE-2025-22150 |
| Ubuntu:26.04:LTS | node-undici | no fix listed | UBUNTU-CVE-2025-22150 |
| Ubuntu:26.10 | node-undici | no fix listed | UBUNTU-CVE-2025-22150 |
| npm | undici | 7.2.3 | GHSA-c76h-2ccp-4975 |
| npm | undici | 6.21.1 | GHSA-c76h-2ccp-4975 |
| npm | undici | 5.28.5 | GHSA-c76h-2ccp-4975 |
Affected products (as reported)
Weakness: CWE-330 · Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
References
- https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975 x_refsource_CONFIRM
- https://github.com/nodejs/undici/commit/711e20772764c29f6622ddc937c63b6eefdf07d0 x_refsource_MISC
- https://github.com/nodejs/undici/commit/c2d78cd19fe4f4c621424491e26ce299e65e934a x_refsource_MISC
- https://github.com/nodejs/undici/commit/c3acc6050b781b827d80c86cbbab34f14458d385 x_refsource_MISC
- https://hackerone.com/reports/2913312 x_refsource_MISC
- https://blog.securityevaluators.com/hacking-the-javascript-lottery-80cc437e3b7f x_refsource_MISC
- https://github.com/nodejs/undici/blob/8b06b8250907d92fead664b3368f1d2aa27c1f35/lib/web/fetch/body.js#L113 x_refsource_MISC