CVE-2026-93019 в Debian: принудительный exit(3) в Imager при чтении TGA с палитрой от 32768

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-файлы.

Официальные источники​


  1. NVD — CVE-2026-93019
  2. Debian Security Tracker — CVE-2026-93019
  3. FIRST EPSS — CVE-2026-93019

История обновлений статьи​


  • 20.09.2026 — Опубликована первая версия материала.
  • 22.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ