Security Lab

Переполнение буфера при обработке PNG изображений в Internet Explorer

Дата публикации:16.12.2002
Всего просмотров:1126
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: Обнаружено две различных уязвимости в интерпретации PNG изображений в Microsoft Windows. Первая уязвимость связанна с обработкой IDAT заголовка и не представляет большой угрозы. Вторая уязвимость может использоваться для выполнения произвольного кода при просмотре злонамеренного PNG изображения. Из-за сложности этих уязвимостей eEye решил только подробно описать только последнюю.

Уязвимость искажения динамической памяти существует в пути, которым функция inflate_fast () в pngfilt.dll, обрабатывает некоторые недопустимые данные во входящем потоке данных "deflate" в PNG изображении. Спецификация сжатия "deflate" использует копии образцов, которые присутствуют в сжатых данных. Это достигается, определяя пару специальных кодов, которые сообщают подпрограмме декомпрессии информацию о промежуточном коде (distance code) и длине кода (length code). Подпрограмма inflate_fast() не в состоянии правильно обработать недопустимую длину кода (согласно спецификации), и в результате, атакующий может переполнить стек, и выполнить произвольный код, внедренный в кодированный "deflate" поток данных внутри PNG изображения.

Переполнение кучи, описанное выше, происходит в механизме интерпретации сжатого блока, которые используют коды Хаффмана (BTYPE = 1). Длина кода #286 и #287, помеченная как недопустимая в программной спецификации (RFC 1951), не отвергается подпрограммой, и вместо этого обрабатывается как код нулевой длины. Однако из-за неправильной работы программы декомпрессии, счетчик длины уменьшиться до оценки цикла, в результате произойдет целочисленное переполнение буфера. В результате, наш образец циклически пройдет все доступное адресное пространство (4 Gb (0xFFFFFFFF) ), перезапишет на 32 КБ наш выходной буфер и выдаст ошибку доступа к памяти.

Уязвимость обнаружена в Internet Explorer 5.5-6.0 и устранена в патче MS02-066

Ссылки: PNG (Portable Network Graphics) Deflate Heap Corruption Vulnerability