VMTech
Обсудить проект →

Pillow 13.0.0 исправила критические ошибки в обработке EPS, JPEG и TIFF

Pillow 13.0.0 исправила критические ошибки в обработке EPS, JPEG и TIFF

Разработчики Pillow выпустили версию 13.0.0, закрывшую несколько уязвимостей в популярной Python-библиотеке обработки изображений. Наиболее заметная из них, CVE-2026-112900, затрагивает версии от 2.6.0 до 12.3.0 и при определённых условиях позволяет выполнить команды операционной системы через имя загружаемого EPS-файла. GitHub оценил эту проблему в 9,2 балла из 10, однако сведений об эксплуатации нет.

Pillow используется в веб-формах загрузки, сервисах аватаров и миниатюр, конвейерах обработки документов и PDF, а также во многих проектах машинного обучения. По оценке OX Security, библиотеку скачивают примерно 436 млн раз в месяц. Поэтому обновление важно не только для специализированных графических сервисов, но и для любого Python-приложения, которое открывает пользовательские изображения.

Как возникает риск при обработке EPS

Проблема CVE-2026-112900 находится не в содержимом PostScript-документа, а в имени файла. Для открытия EPS Pillow запускает Ghostscript и передаёт ему имя файла. Если приложение сохраняет имя, заданное пользователем, либо формирует его из пользовательского ввода, Ghostscript может интерпретировать такое значение как инструкцию и обратиться к другому файлу с командами.

Этот сценарий достижим только на хостах, где установлен исполняемый файл gs: без Ghostscript Pillow не может открывать EPS. Сопровождающие Pillow считают уязвимость умеренной, поскольку атакующему необходимо контролировать имя файла. При этом CVE-запись GitHub присваивает ей критическую оценку 9,2. Практической точкой риска становятся конечные точки загрузки, которые принимают EPS и не заменяют исходные имена файлов.

Другие исправления в выпуске

В релиз вошли исправления разных уровней серьёзности, включая две проблемы, отмеченные разработчиками как критические. Одна из них связана с повторным использованием устаревших данных изображения после смены режима. Ещё две затрагивают декодирование JPEG.

Ошибка в формате FlashPix, или FPX, может привести к выполнению команды при одном вызове Image.open() для специально подготовленного файла, если в окружении установлен необязательный пакет olefile. Pillow определяет такой файл по содержимому, а не по расширению, поэтому переименование загрузки не служит защитой. Другая проблема, CVE-2026-112403, возникает при создании миниатюры из специально сформированного JPEG без потерь и, согласно уведомлению, приводит к аварийному завершению процесса.

Также исправлена CVE-2026-112393, присутствовавшая в Pillow с 2013 года. Она затрагивает сохранение сжатого TIFF в буфер памяти, например io.BytesIO, а не в файл на диске. Исследователи добились аварийного завершения процесса; для выполнения кода им потребовалась дополнительная отдельная уязвимость, раскрывающая адреса в памяти. Сохранение TIFF непосредственно на диск этому дефекту не подвержено.

Что проверить командам разработки

Основное действие — перейти на Pillow 13.0.0 и пересобрать контейнеры, wheels и базовые образы, где могла остаться старая зависимость. Выпуск прекращает поддержку Python 3.10, поэтому окружения на этой версии должны сначала перейти на Python 3.11 или новее.

До обновления стоит убрать Ghostscript с узлов, обрабатывающих недоверенные загрузки, и не передавать контролируемые пользователем имена EPS в Image.open(). Для недоверенных JPEG разработчики советуют не использовать draft() и thumbnail(), либо предварительно вызывать load(), либо задавать reducing_gap=None. При обработке пользовательского TIFF сохранение в io.BytesIO следует считать чувствительным сценарием. Для бизнеса это означает необходимость проверить не только код приложения, но и состав образов и вспомогательные пакеты в среде исполнения.

#cybersecurity#pythonsecurity#pillow#vulnerability
Открытая аналитика
На сайте 2 просмотров
мин чтения 4 23.10.2026
Instagram

Pillow 13.0.0 исправила критические ошибки в обработке EPS, JPEG и TIFF

Открыть публикацию в Instagram ↗