Исследователи из Cisco Talos раскрыли детали двух критических уязвимостей в библиотеке Simple DirectMedia Layer (SDL), широко используемой при написании кросс-платформенных мультимедийных программ, в первую очередь, игровых. По словам экспертов, публикация брешей была согласована с SDL-сообществом и пропатченная версия библиотеки уже доступна.

Согласно блог-записи Talos, эксплуатация обеих уязвимостей может повлечь исполнение произвольного кода. Эксплойт в данном случае осуществляется с помощью специально созданного файла — например, XCF.

Баг CVE-2017-2887 связан с переполнением буфера и был обнаружен в обработчике свойств XCF-изображений в библиотеке SDL_image 2.0.1. Эта брешь возникла из-за некорректной проверки данных, считываемых из файла, а точнее, из-за отсутствия проверки атрибутов id и length.

Уязвимость CVE-2017-2888 представляет собой баг целочисленного переполнения и проявляется при построении поверхности формата RGB с использованием функции CreateRGBSurface в библиотеке SDL 2.0.5. Если задать слишком большие ширину и высоту, объема выделенной памяти может не хватить, и запись будет произведена за пределами допустимого диапазона.

Первопричиной возникновения такой ошибки, по свидетельству Talos, являлось отсутствие проверки результатов умножения до выделения памяти. Функция CreateRGBSurface используется во многих форматах SDL_image, то есть переполнение буфера можно было вызвать не только с помощью XCF-файла, но и файлов других форматов.

Категории: Аналитика, Уязвимости