Уязвимость вызвана использованием разных заголовков при произвольном доступе к архиву при помощи API ZipArchive и при извлечении данных в потоковом режиме при помощи API ZipStreamReader. Обработчик ZipArchive полагается на заголовок CDFH (Central Directory File Header), а ZipStreamReader при извлечении файлов считает более приоритетным заголовок LFH (Local File Header) без синхронизации дублирующихся метаданных.
Уязвимость может использоваться для обхода почтовых фильтров, антивирусных сканеров и прочих систем проверки безопасности. Атакующий может разместить в видимой части архиве документ или изображение, а в скрытую поместить исполняемый файл с вредоносным кодом, который не будет замечен антивирусом, но будет сохранён на диск при распаковке пользователем. В качестве примеров приводятся атаки на микросервисы, SaaS-платформы и системы контейнерной изоляции, в ходе которых при распаковке в каталогах с рабочими проектами не представляющих опасности архивов, например, с наборами стилей, текстовых файлов или изображений, могут быть перезаписаны скрипты и исполняемые файлы.
Дополнительно можно отметить уязвимость (CVE-2026-96889) в библиотеке librsvg, развиваемой проектом GNOME на языке Rust. Библиотека применяется в GTK и приложениях GNOME для отрисовки SVG, а также задействована в популярном NPM-пакете sharp, насчитывающем 80 млн загрузок в неделю и используемом в качестве зависимости у почти 11 тысяч проектов. Уязвимость позволяет организовать выполнение своего кода при обработке специально оформленных SVG-изображений. Проблема устранена в версиях librsvg 2.56.6, 2.60.3, 2.62.4 и 2.63.1, а также к NPM-пакете sharp 0.35.5. Среди пострадавших проектов оказалась платформа PeerTube (зависимость обновлена в сегодняшнем выпуске PeerTube 8.3.2).
Для разбора XML-разметки, используемой в SVG-файлах, в librsvg задействованы функции из Си-библиотеки libxml2. Уязвимость вызвана тем, что при наличии в SVG вложенных XML-конструкций Xincludes, включающих дублирующиеся элементы с повторяющимися именами, происходит обращение к памяти после её освобождения. Сбой возникает так как библиотека librsvg освобождает память под XML-элементы, которые ещё продолжают использоваться в парсере libxml2.
Источник: http://www.opennet.ru/opennews/art.shtml?num=66555
