Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

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

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:* 5.8.1 (incluyendo)