Функция http.c:skip_short_body() вызывается в некоторых обстоятельствах, например, при обработке перенаправлений. Когда ответ отправляется …
Функция http.c:skip_short_body() вызывается в некоторых обстоятельствах, например, при обработке перенаправлений. Когда ответ отправляется по частям в wget до версии 1.19.2, парсер фрагментов использует strtol() для чтения длины каждого фрагмента, но не проверяет, является ли длина фрагмента неотрицательным числом. Затем код пытается пропустить фрагмент частями по 512 байт, используя макрос MIN(), но в конечном итоге передает отрицательную длину фрагмента в connect.c:fd_read(). Поскольку fd_read() принимает аргумент int, старшие 32 бита длины фрагмента отбрасываются, оставляя fd_read() с аргументом длины, полностью контролируемым злоумышленником.
Переполнение стекового буфера — это условие, при котором перезаписываемый буфер размещён в стеке (то есть является локальной переменной или, редко, параметром функции).
https://cwe.mitre.org/data/definitions/121.html →Открыть в коллекции CWE →