Структурированный ответ — это функция протокола NBD нового стиля, позволяющая серверу отправлять ответ частями. Проверка границ, которая до…
Структурированный ответ — это функция протокола NBD нового стиля, позволяющая серверу отправлять ответ частями. Проверка границ, которая должна была проверять смещения фрагментов, меньшие, чем начало запроса, не работала из-за путаницы между знаковыми и беззнаковыми числами. Если один из этих фрагментов содержит отрицательное смещение, то данные, контролируемые сервером, записываются в память перед буфером чтения, предоставленным клиентом. Если буфер чтения находится в стеке, то это позволяет тривиально изменить адрес возврата стека из nbd_pread(), позволяя выполнять произвольный код под контролем сервера. Если буфер расположен в куче, то другие объекты памяти перед буфером могут быть перезаписаны, что опять же обычно приводит к выполнению произвольного кода.
При преобразовании одного типа данных в другой, например long в integer, данные могут быть усечены или преобразованы таким образом, что получаются непредвиденные значения. Если полученные значения используются в чувствительном контексте, это может привести к опасному поведению.
https://cwe.mitre.org/data/definitions/681.html →Открыть в коллекции CWE →