VDB
KO
MEDIUM 6.8

GHSA-c76h-2ccp-4975

Use of Insufficiently Random Values in undici

Details

### 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.com/reports/2913312 * https://blog.securityevaluators.com/hacking-the-javascript-lottery-80cc437e3b7f

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / undici
Introduced in: 4.5.0 Fixed in: 5.28.5
Fix npm install undici@5.28.5
npm / undici
Introduced in: 6.0.0 Fixed in: 6.21.1
Fix npm install undici@6.21.1
npm / undici
Introduced in: 7.0.0 Fixed in: 7.2.3
Fix npm install undici@7.2.3

References