Vulnerability in Node.js Undici

CVE-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 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.

EPSS: 0.007 (51.2th percentile) — read the EPSS interpretation.

CVSS v3 metric

CVSS v3 base score 6.8 (Medium). Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N.

Affected products

  • Nodejs Undici — versions >= 4.5.0, < 5.28.5, >= 6.0.0, < 6.21.1, >= 7.0.0, < 7.2.3

Weakness classification (CWE)

Public proof-of-concept exploits

References

Frequently asked questions

What is CVE-2025-22150?
CVE-2025-22150 is a medium-severity vulnerability in Node.js Undici, classified under Use of Insufficiently Random Values. CVSS score: 6.8/10. Published 2025-01-21.
How severe is CVE-2025-22150?
Medium severity. CVSS v3 base score is 6.8 out of 10.
Is CVE-2025-22150 known to be exploited?
1 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.