Vulnerabilidad en Undici (CVE-2025-22150)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-330
Uso de valores insuficientemente aleatorios
Fecha de publicación:
21/01/2025
Última modificación:
21/01/2025
Descripción
Undici es un cliente HTTP/1.1. A partir de la versión 4.5.0 y antes de las versiones 5.28.5, 6.21.1 y 7.2.3, undici usa `Math.random()` para elegir el límite de una solicitud multiparte/form-data. Se sabe que la salida de `Math.random()` se puede predecir si se conocen varios de sus valores generados. Si hay un mecanismo en una aplicación que envía solicitudes multiparte a un sitio web controlado por un atacante, este puede usarlo para filtrar los valores necesarios. Por lo tanto, un atacante puede manipular las solicitudes que van a las API de backend si se cumplen ciertas condiciones. Esto se solucionó en las versiones 5.28.5, 6.21.1 y 7.2.3. Como workaround, no envíe solicitudes multiparte a servidores controlados por un atacante.
Impacto
Puntuación base 3.x
6.80
Gravedad 3.x
MEDIA
Referencias a soluciones, herramientas e información
- https://blog.securityevaluators.com/hacking-the-javascript-lottery-80cc437e3b7f
- https://github.com/nodejs/undici/blob/8b06b8250907d92fead664b3368f1d2aa27c1f35/lib/web/fetch/body.js#L113
- https://github.com/nodejs/undici/commit/711e20772764c29f6622ddc937c63b6eefdf07d0
- https://github.com/nodejs/undici/commit/c2d78cd19fe4f4c621424491e26ce299e65e934a
- https://github.com/nodejs/undici/commit/c3acc6050b781b827d80c86cbbab34f14458d385
- https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975
- https://hackerone.com/reports/2913312