Vulnerabilidad en la opción "path/pathname" de "undici.request" en undici (CVE-2022-35949)
Gravedad CVSS v3.1:
CRÍTICA
Tipo:
CWE-918
Falsificación de solicitud en servidor (SSRF)
Fecha de publicación:
12/08/2022
Última modificación:
28/03/2023
Descripción
undici es un cliente HTTP/1.1, escrito desde cero para Node.js."undici" es vulnerable a un ataque de tipo SSRF (Server-side Request Forgery) cuando una aplicación toma la **user input** en la opción "path/pathname" de "undici.request". Si un usuario especifica una URL como "http://127.0.0.1" o "//127.0.0.1" ""js const undici = require("undici") undici.request({origin: "http://example.com", pathname: "//127.0.0.1"}) """ En lugar de procesar la petición como "http://example.org//127.0.0.1" (o "http://example.org/http://127.0.0.1" cuando es usada "http://127.0.0.1"), en realidad procesa la petición como "http://127.0.0.1/" y la envía a "http://127.0.0.1". Si un desarrollador pasa la entrada del usuario en el parámetro "path" de "undici.request", puede resultar en un _SSRF_ ya que asumirá que el nombre del host no puede cambiar, cuando en realidad puede cambiar porque el parámetro path especificado es combinado con la URL base. Este problema ha sido corregido en "undici@5.8.1". La mejor mitigación es comprender la entrada del usuario antes de pasarla a la llamada "undici.request".
Impacto
Puntuación base 3.x
9.80
Gravedad 3.x
CRÍTICA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:* | 5.8.1 (incluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página