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

Vulnerabilidad en la función retr.c:fd_read_body() en wget (CVE-2017-13090)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-122 Desbordamiento de búfer basado en memoria dinámica (Heap)
Fecha de publicación:
27/10/2017
Última modificación:
20/04/2025

Descripción

Se llama a la función retr.c:fd_read_body() cuando se procesan las respuestas OK. 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 leer el fragmento en partes de 8192 bytes utilizando la macro MIN(), pero acaba pasando la longitud negativa del fragmento a retr.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. El atacante puede corromper metadatos malloc después del búfer asignado.

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:*:*:*:*:*:*:*