Когда файловая система fusefs реализует расширенные атрибуты, ядро может отправить сообщение FUSE_LISTXATTR демону пользовательского простр…
Когда файловая система fusefs реализует расширенные атрибуты, ядро может отправить сообщение FUSE_LISTXATTR демону пользовательского пространства для извлечения списка расширенных атрибутов для данного файла. Протокол FUSE требует, чтобы демон возвращал упакованный список NUL-прекращенных строк. Модуль ядра fusefs вызывает strlen() на этом демон-поставляемом буфере без предварительной проверки того, что весь список завершен NUL. Если злонамеренный демон отправляет список, не исключенный из UL, модуль ядра fusefs может читаться за пределами одного буфера, выделенного кучу, и потенциально писать за пределами второго буфера. Злонамеренный демон может раскрыть до 253 байтов кучи ядра или он может ввести до 250 контролируемых злоумышленниками байтов в нераспределенное пространство кучи ядра.
Переполнение кучи — это условие переполнения буфера, при котором перезаписываемый буфер выделен в области кучи памяти, что, как правило, означает выделение буфера с помощью функции наподобие malloc().
https://cwe.mitre.org/data/definitions/122.html →Открыть в коллекции CWE →Данная атака приводит к выходу целочисленной переменной за допустимый диапазон значений. Целочисленная переменная нередко используется в качестве смещения, например при выделении памяти и т. п. Злоумышленник, как правило, контролирует значение такой переменной и стремится вывести его за допустимые границы. Например, если рассматриваемое целое число инкрементируется сверх максимально допустимого значения, оно может обернуться в очень маленькое или отрицательное число, что повлечёт некорректное поведение. В худшем случае злоумышленник может выполнить произвольный код.
https://capec.mitre.org/data/definitions/92.html →Открыть в коллекции CAPEC →