CVE: CVE-2026-93019
Продукт: Debian
Дата публикации: 18.09.2026
Критичность: CRITICAL
CVSS: 9.1 (3.1)
EPSS: 0,61%; процентиль 47,37%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В Debian CVE-2026-93019 затрагивает пакет libimager-perl версий до 1.036. При чтении TGA-файла с длиной цветовой карты 32768 и более Imager завершает процесс вызовом exit(3). В Debian release bookworm и trixie статус open, исправления нет. Для forkery и sid указаны исправленные версии 1.036+dfsg-1.
Основные характеристики
Риск сводится к принудительному завершению процесса Perl-приложения, которое использует Imager для чтения TGA-файлов. Атака не требует привилегий и может выполняться удалённо через подачу вредоносного файла.
- Тип ошибки: CWE-196 (некорректное преобразование типа) и CWE-789 (непреднамеренный выход из процесса)
- CVSS 3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H, оценка 9.1, критическая
- Условие атаки: подача TGA-файла с длиной цветовой карты >= 32768 через Imager->read()
- Факт эксплуатации: в источниках нет подтверждения активной эксплуатации или публичного эксплойта
- EPSS: 0.61% (процентиль 47.4%)
Какие продукты и версии затронуты
В Debian затронут пакет libimager-perl.
- bookworm: версия 1.019+dfsg-1, статус open, исправления нет
- trixie: версия 1.027+dfsg-1, статус open, исправления нет
- forky: версия 1.036+dfsg-1, статус resolved
- sid: версия 1.036+dfsg-1, статус resolved
Причина уязвимости
Читатель TGA в Imager извлекает двухбайтовую длину цветовой карты и помещает её в signed short.
Когда длина равна 32768 или больше, значение становится отрицательным. Функция tga_palette_read() приводит это значение к size_t и запрашивает у mymalloc() размер, близкий к SIZE_MAX.
Выделение памяти не удаётся, а аллокатор Imager вызывает exit(3). Процесс завершается без возможности перехвата ошибки на уровне Perl.
Как работает атака
Атакующий создаёт TGA-файл с длиной цветовой карты 32768 или более.
Файл подаётся в приложение, которое вызывает Imager->read(). Внутри tga_palette_read() отрицательное значение приводит к запросу огромного выделения памяти.
mymalloc() не может выделить память такого размера и возвращает ошибку. Аллокатор Imager завершает процесс вызовом exit(3). Завершение происходит на уровне C, поэтому Perl-код не получает исключение.
Условия успешной эксплуатации
Для успешной эксплуатации нужны:
- доступ к предоставлению TGA-файла приложению, использующему Imager
- версия libimager-perl до 1.036 в Debian (bookworm или trixie)
- отсутствие фильтрации длины цветовой карты на уровне приложения
- возможность запускать Perl-процесс с импортом Imager
Возможный сценарий атаки
Сценарий предполагает серверное приложение, принимающее TGA-файлы от пользователя.
Пользователь загружает файл с длиной палитры 32768. Приложение передаёт файл в Imager->read(). Процесс завершается кодом 3.
Если приложение работает как сервис или демон, это приводит к отказу в обслуживании конкретного процесса или службы.
Есть ли публичный эксплойт
В предоставленных источниках нет публичного эксплойта, PoC-скрипта или подтверждения активной эксплуатации.
Наличие эксплойта не подтверждено. Механика описана на уровне кода Imager: чтение TGA с длиной >= 32768 вызывает exit(3).
Признаки эксплуатации
Специфичных IOC для CVE-2026-93019 в источниках нет.
Неспецифичные признаки:
- незапланированное завершение Perl-процессов с кодом 3
- рост числа завершённых процессов во время обработки изображений
- наличие TGA-файлов с аномально большой длиной цветовой карты в логах загрузки
- ошибки в системных журналах, связанные с завершением процесса без сигнала
Как обнаружить атаку
Для обнаружения можно использовать:
- мониторинг кодов завершения Perl-процессов (exit code 3)
- анализ логов веб-сервера на аномальные размеры TGA-файлов
- проверку версий libimager-perl через dpkg или apt-cache
- поиск файлов с длиной палитры >= 32768 в каталогах загрузки
Как проверить свою версию
Команды проверки версии пакета и дистрибутива:
Bash:
cat /etc/debian_version
Bash:
cat /etc/os-release
Bash:
apt-cache policy <имя-пакета>
Bash:
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>
Замените
<имя-пакета> на libimager-perl для проверки конкретной версии пакета.Исправление
Исправление доступно в версиях 1.036+dfsg-1.
- forky: обновить до 1.036+dfsg-1 через apt
- sid: обновить до 1.036+dfsg-1 через apt
- bookworm: исправления нет, требуется временная защита или отключение обработки TGA
- trixie: исправления нет, требуется временная защита или отключение обработки TGA
Временные меры защиты
Временные меры для bookworm и trixie:
- ограничить входные данные: не принимать TGA-файлы с длиной палитры >= 32768
- использовать прокси, фильтрующий размер цветовых карт в TGA
- отключить обработку TGA в приложениях до выпуска исправления
- запускать Perl-приложения в изолированном контейнере или cgroup с ограничением памяти
Как проверить устранение уязвимости
После обновления проверьте:
Bash:
dpkg-query -W -f='${Package} ${Version}\n' libimager-perl
Версия должна быть 1.036+dfsg-1 или выше.
Для проверки дистрибутива:
Bash:
cat /etc/debian_version
Убедитесь, что release соответствует статусу resolved в Debian Security Tracker.
Вывод
CVE-2026-93019 — критическая уязвимость DoS типа в Imager для Perl. В Debian она затрагивает bookworm и trixie, где исправления пока нет. Для forkery и sid фикс доступен в версии 1.036+dfsg-1.
Приоритет: обновить системы с forkery и sid, а для bookworm и trixie применить временные ограничения на входные TGA-файлы.
Официальные источники
История обновлений статьи
- 20.09.2026 — Опубликована первая версия материала.
- 22.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
