Критическая брешь в библиотеке libwebp получила максимальный балл по CVSS

Критическая брешь в библиотеке libwebp получила максимальный балл по CVSS

Критическая брешь в библиотеке libwebp получила максимальный балл по CVSS

Google присвоила новый CVE-идентификатор критической уязвимости в библиотеке libwebp, предназначенной для рендеринга изображения в формате WebP. Самое интересное, что дыра используется в реальных атаках и при этом получила максимально высокий балл по шкале CVSS.

CVE-2023-5129 — новый идентификатор проблемы. CVSS-балл, как вы сами уже поняли, — 10. Корень бага кроется в алгоритме Хаффмана и описывается следующим образом:

«С помощью специально подготовленного файла в формате WebP библиотека libwebp может записать данные за границами буфера. Функция ReadHuffmanCodes() выделяет размер буфера HuffmanCode из массива заранее вычисленных значений — kTableSize».

«Значение color_cache_bits при этом определяет, какой именно размер нужно использовать. Массив kTableSize учитывает лишь размеры для поиска в 8-битной таблице первого уровня, игнорируя таблицу второго уровня».

Библиотека libwebp, как отмечают исследователи, разрешает коды длиной до 15 бит (MAX_ALLOWED_CODE_LENGTH). Если BuildHuffmanTable() попытается заполнить таблицы второго уровня, может произойти запись данных за пределами границ.

Эта проблема связана с двумя другими брешами — CVE-2023-41064 и CVE-2023-4863. Первую устранила Apple в своих продуктах, а вторую — Google и Mozilla. Эти уязвимости могут использоваться для выполнения вредоносного кода при обработке специально созданного изображения.

Zombie ZIP: новый трюк с ZIP-архивами помогает обходить антивирусы

Исследователи обратили внимание на новую технику под названием Zombie ZIP, которая позволяет прятать вредоносную нагрузку в специально подготовленных ZIP-архивах так, чтобы большинство защитных решений её просто не распознают.

По данным автора метода Криса Азиза из Bombadil Systems, подход сработал против 50 из 51 антивирусного движка на VirusTotal.

Суть трюка в том, что архиву подменяют служебные поля в заголовке. Защитные продукты верят, что внутри лежат обычные несжатые данные и сканируют файл именно так.

Но на деле полезная нагрузка остаётся сжатой через DEFLATE, поэтому антивирус видит не подозрительный файл, а фактически «шум» из сжатых байтов. Из-за этого сигнатуры просто не срабатывают.

Самое любопытное, что для обычного пользователя такой архив тоже выглядит странно, но не опасно. Если попытаться открыть его через 7-Zip, WinRAR или unzip, можно получить ошибку, сообщение о неподдерживаемом методе или битые данные.

Это достигается, в частности, за счёт специально выставленного значения CRC, которое не совпадает с тем, что ожидают стандартные распаковщики. Но если у злоумышленника есть собственный загрузчик, который игнорирует ложный заголовок и распаковывает содержимое как DEFLATE, полезная нагрузка восстанавливается без проблем.

Крис Азиз уже выложил демонстрационный эксплойт на GitHub вместе с примерами архивов и описанием механики. А CERT/CC присвоил этой проблеме идентификатор CVE-2026-0866. Там же отмечают, что история отчасти напоминает старую уязвимость CVE-2004-0935: ещё больше двадцати лет назад уже выяснялось, что антивирусы могут слишком доверять поломанным ZIP-заголовкам.

RSS: Новости на портале Anti-Malware.ru