Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

nvd логотип

CVE-2017-13090

Опубликовано: 27 окт. 2017
Источник: nvd
CVSS3: 8.8
CVSS2: 9.3
EPSS Средний

Уязвимость повреждения памяти в GNU Wget из-за некорректной обработки отрицательных значений длины чанка

Описание

В функции retr.c:fd_read_body() происходит обработка ответов со статусом OK. При обработке фрагментированных ответов в версиях wget до 1.19.2, парсер фрагментов (чанков) использует функцию strtol() для чтения длины каждого фрагмента, однако не проверяет, что длина фрагмента является неотрицательным числом. Код пытается считать фрагмент кусками по 8192 байта, используя макрос MIN(), но в результате передает отрицательную длину фрагмента в функцию retr.c:fd_read(). Поскольку fd_read() принимает аргумент типа int, старшие 32 бита длины фрагмента отбрасываются, позволяя злоумышленнику полностью контролировать длину аргумента для fd_read(). Злоумышленник может повредить метаданные функции malloc после выделенного буфера.

Затронутые версии ПО

  • GNU Wget до релиза 1.19.2

Тип уязвимости

Повреждение памяти

Уязвимые конфигурации

Конфигурация 1
cpe:2.3:a:gnu:wget:*:*:*:*:*:*:*:*
Версия до 1.19.1 (включая)
Конфигурация 2

Одно из

cpe:2.3:o:debian:debian_linux:8.0:*:*:*:*:*:*:*
cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*

EPSS

Процентиль: 93%
0.10658
Средний

8.8 High

CVSS3

9.3 Critical

CVSS2

Дефекты

CWE-122
CWE-119

Связанные уязвимости

CVSS3: 8.8
ubuntu
около 8 лет назад

The retr.c:fd_read_body() function is called when processing OK responses. When the response is sent chunked in wget before 1.19.2, the chunk parser uses strtol() to read each chunk's length, but doesn't check that the chunk length is a non-negative number. The code then tries to read the chunk in pieces of 8192 bytes by using the MIN() macro, but ends up passing the negative chunk length to retr.c:fd_read(). As fd_read() takes an int argument, the high 32 bits of the chunk length are discarded, leaving fd_read() with a completely attacker controlled length argument. The attacker can corrupt malloc metadata after the allocated buffer.

CVSS3: 7.8
redhat
около 8 лет назад

The retr.c:fd_read_body() function is called when processing OK responses. When the response is sent chunked in wget before 1.19.2, the chunk parser uses strtol() to read each chunk's length, but doesn't check that the chunk length is a non-negative number. The code then tries to read the chunk in pieces of 8192 bytes by using the MIN() macro, but ends up passing the negative chunk length to retr.c:fd_read(). As fd_read() takes an int argument, the high 32 bits of the chunk length are discarded, leaving fd_read() with a completely attacker controlled length argument. The attacker can corrupt malloc metadata after the allocated buffer.

CVSS3: 8.8
debian
около 8 лет назад

The retr.c:fd_read_body() function is called when processing OK respon ...

CVSS3: 8.8
github
больше 3 лет назад

The retr.c:fd_read_body() function is called when processing OK responses. When the response is sent chunked in wget before 1.19.2, the chunk parser uses strtol() to read each chunk's length, but doesn't check that the chunk length is a non-negative number. The code then tries to read the chunk in pieces of 8192 bytes by using the MIN() macro, but ends up passing the negative chunk length to retr.c:fd_read(). As fd_read() takes an int argument, the high 32 bits of the chunk length are discarded, leaving fd_read() with a completely attacker controlled length argument. The attacker can corrupt malloc metadata after the allocated buffer.

CVSS3: 8.8
fstec
около 8 лет назад

Уязвимость функции fd_read_body() программного средства для загрузки файлов по сети Wget , позволяющая нарушителю выполнить произвольный код

EPSS

Процентиль: 93%
0.10658
Средний

8.8 High

CVSS3

9.3 Critical

CVSS2

Дефекты

CWE-122
CWE-119