FreeRDP является бесплатной реализацией протокола удаленных рабочих столов. До 3.24.0, подпоток размера_t в аудиодекодерах IMA-ADPCM и MS-A…
FreeRDP является бесплатной реализацией протокола удаленных рабочих столов. До 3.24.0, подпоток размера_t в аудиодекодерах IMA-ADPCM и MS-ADPCM приводит к написанию кучи-буфера через аудиоканал RDPSND. В libfreerdp/codec/dsp.c декодеры IMA-ADPCM и MS-ADPCM вычитают размеры заголовка блока из переменной размер_t без проверки на подтекст. Когда nBlockAlign (полуденный с сервера) устанавливается таким образом, что размер % block_size == 0 запускает разбор заголовка в точке, где размер меньше, чем заголовок (4 или 8 байтов), вычитание обертывает размер до ~SIZE_MAX. Затем петля в то время (размер > 0) продолжается для астрономического числа итераций. Эта уязвимость фиксируется в 3.24.0.
Переполнение кучи — это условие переполнения буфера, при котором перезаписываемый буфер выделен в области кучи памяти, что, как правило, означает выделение буфера с помощью функции наподобие malloc().
https://cwe.mitre.org/data/definitions/122.html →Открыть в коллекции CWE →Данная атака приводит к выходу целочисленной переменной за допустимый диапазон значений. Целочисленная переменная нередко используется в качестве смещения, например при выделении памяти и т. п. Злоумышленник, как правило, контролирует значение такой переменной и стремится вывести его за допустимые границы. Например, если рассматриваемое целое число инкрементируется сверх максимально допустимого значения, оно может обернуться в очень маленькое или отрицательное число, что повлечёт некорректное поведение. В худшем случае злоумышленник может выполнить произвольный код.
https://capec.mitre.org/data/definitions/92.html →Открыть в коллекции CAPEC →