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

Vulnerabilidad en la función http.c:skip_short_body() en wget (CVE-2017-13089)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-121 Desbordamiendo de búfer basado en pila (Stack)
Fecha de publicación:
27/10/2017
Última modificación:
20/04/2025

Descripción

Se llama a la función http.c:skip_short_body() en ciertas circunstancias, como cuando se procesan redirecciones. Cuando la respuesta se envía fragmentada en wget en versiones anteriores a la 1.19.2, el analizador de fragmentos utiliza srtol() para leer la longitud de cada fragmento, pero no comprueba si esta longitud es un número no negativo. El código entonces intenta saltarse el fragmento en partes de 512 bytes utilizando la macro MIN(), pero acaba pasando la longitud negativa del fragmento a connect.c:fd_read(). Ya que fd_read() toma un argumento int, los 32 bits de la longitud del fragmento se descartan, dejando fd_read() con un argumento de longitud controlado por completo por el atacante.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:gnu:wget:*:*:*:*:*:*:*:* 1.19.1 (incluyendo)
cpe:2.3:o:debian:debian_linux:8.0:*:*:*:*:*:*:*
cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*