
Критична уразливість бібліотеки зображень Pillow дозволяє виконання коду через спеціально сформоване ім'я файлу EPS
Помилка обробки EPS у Pillow дозволяє зловмисникам виконувати код, керуючи ім'ям файлу; CVE-2026-112900 зачіпає версії 2.6.0-12.3.0 і виправлена у 13.0.0 (16 жовтня). Оновіть і блокуйте завантаження недовірених EPS.
Деталі уразливості
Pillow, найпоширеніша бібліотека зображень для Python, містить критичну помилку в обробці EPS. При відкритті файлу EPS Pillow передає ім'я файлу програмі Ghostscript без перевірки. Зловмисник, який контролює ім'я файлу, може змусити Ghostscript інтерпретувати його як команди, що призводить до довільного виконання коду. Уразливість відстежується як CVE-2026-112900 і зачіпає версії Pillow від 2.6.0 до 12.3.0. Супроводжувачі випустили версію 13.0.0 16 жовтня для усунення проблеми.
Повідомлення про вразливість зазначає, що помилка спрацьовує через ім'я файлу, а не через вміст документа PostScript, тобто безпечний файл EPS може стати небезпечним, коли ім'я маніпулюють. Помилка спрацьовує лише на системах, де встановлена програма gs, яка потрібна для підтримки EPS.
Вплив та масштаб
Pillow використовується у веб-формах завантаження, генерації аватарок та мініатюр, конвеєрах документів та PDF, а також у більшості проєктів машинного навчання. OX Security оцінює, що бібліотеку завантажують близько 436 мільйонів разів на місяць. Версія 13.0.0 — це велике оновлення безпеки, яке включає виправлення чотирьох рівнів критичності, два з яких супроводжувачі оцінюють як критичні. Запис CVE оцінює помилку EPS на 9,2 з 10, тоді як супроводжувачі оцінюють її як середню, оскільки зловмисник має контролювати ім'я файлу. Використання уразливості EPS в дикій природі не спостерігалося.
Додаткові критичні виправлення в тому ж випуску усувають помилку повторного використання пам'яті після зміни режиму, два переповнення при декодуванні JPEG та давно існуюче переповнення буфера TIFF, присутнє з 2013 року. Переповнення JPEG у форматі FlashPix може призвести до виконання коду за допомогою одного виклику Image.open, коли встановлений опціональний пакет olefile. Переповнення TIFF виникає при збереженні стисненого TIFF у буфер у пам'яті, наприклад io.BytesIO, що є поширеним патерном для сервісів, які перекодовують завантаження.
Кроки мітигації
Оновіться до Pillow 13.0.0 і перезберіть будь-які контейнери, wheel-пакети або базові образи, що містять старішу копію. Pillow 13 припиняє підтримку Python 3.10, тому середовища, що все ще на 3.10, мають перейти на Python 3.11 або новіший. Команда оновлення: pip install -U "Pillow>=13.0.0".
Якщо негайне оновлення неможливе, такі заходи зменшують ризик: не тримайте програму gs на хостах, що обробляють недовірені завантаження, і ніколи не передавайте ім'я файлу, контрольоване зловмисником, до Image.open для файлів EPS; уникайте використання draft() і thumbnail() на недовірених JPEG, або спочатку викликайте load(), або передайте reducing_gap=None; трактуйте збереження TIFF у буфер пам'яті як конфіденційну операцію, коли зображення походить від користувача.
Джерела: The Hacker News
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.