CVE-2026-54627 в Debian: критический риск, затронутые версии и проверка исправления

CVE: CVE-2026-54627
Продукт: Debian
Дата публикации: 17.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,44%; процентиль 37,98%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


В Debian проблема CVE-2026-54627 связана с пакетом sail. В версиях до 1.0.0 обработка одноканального PSD в Bitmap color mode приводит к записи за пределы выделенного буфера, что даёт возможность повреждения памяти, стабильного сбоя или потенциального выполнения кода. Для Debian важно проверить версию пакета sail и статус релиза: forky и sid указаны как resolved с фиксацией 1.2.0-1, а trixie остаётся open с текущей версией 0.9.8-1+deb13u1.

Основные характеристики​


Риск связан с несовместимостью формата пиксельных данных при загрузке PSD: буфер строится как однобитный, а запись идёт по байтам на пиксель. Это позволяет нарушить память процесса, который обрабатывает файл.

  • Тип ошибки: CWE-122 и CWE-787 — выход записи за пределы выделенного массива или буфера.
  • CVSS v3.1: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, оценка 9.8, критическая.
  • Вектор атаки: удалённый, без необходимости прав и взаимодействия; достаточно загрузки crafted PSD через sail_load_from_file() или sail_load_from_memory().
  • Факт эксплуатации: в предоставленных источниках не подтверждено использование в реальных атаках.
  • EPSS: 0.44%, процентиль 37.98%.

Какие продукты и версии затронуты​


В Debian затронут исходный пакет sail.

  • forky: статус resolved, исправленная версия 1.2.0-1.
  • sid: статус resolved, исправленная версия 1.2.0-1.
  • trixie: статус open, версия в репозитории 0.9.8-1+deb13u1.

В исходном описании CVE указано, что проблема присутствует в SAIL 0.9.10 и ниже и исправлена в 1.0.0. Для Debian ключевым является не только номер upstream, но и версия пакета из репозитория дистрибутива.

Причина уязвимости​


В функции psd_private_sail_pixel_format() из файла src/sail-codecs/psd/helpers.c одноканальный PSD в Bitmap color mode переводится в SAIL_PIXEL_FORMAT_BPP1_INDEXED без проверки глубины файла.

Из-за этого буфер строится как однобитные строки. В sail_codec_load_frame_v8_psd() из src/sail-codecs/psd/psd.c принимается depth == 8, и на каждый пиксель записывается один управляемый атакующим байт.

После загрузки crafted PSD через sail_load_from_file() или sail_load_from_memory() запись идёт за пределы каждой строки кучи. Это вызывает повреждение памяти, стабильный сбой или потенциальное выполнение кода.

Как работает атака​


Атакующий создаёт PSD-файл, где одноканальный Bitmap color mode совмещён с depth == 8.

Библиотека SAIL при загрузке определяет формат как однобитный и выделяет строки под один бит на пиксель. При этом код декодирования обрабатывает depth == 8 и пишет байт на каждый пиксель в буфер, рассчитанный на однобитные строки.

После записи данные выходят за пределы выделенного массива. Это может повредить соседние объекты кучи, изменить указатели или данные структуры процесса. Если процесс использует SAIL для обработки пользовательских изображений, атака возможна без локального доступа и без прав.

Вектор CVSS показывает удалённый доступ, низкую сложность, отсутствие требований к правам и интерфейсу пользователя, а также высокий уровень воздействия на конфиденциальность, целостность и доступность.

Условия успешной эксплуатации​


Для успешной эксплуатации нужны следующие условия:

  • Система Debian использует пакет sail с уязвимой версией.
  • В trixie по данным Debian Security Tracker статус open и версия 0.9.8-1+deb13u1.
  • forky и sid указаны как resolved с фиксацией 1.2.0-1.
  • Процесс на системе обрабатывает PSD через sail_load_from_file() или sail_load_from_memory().
  • Атакующий может предоставить crafted PSD для загрузки.
  • Вектор удалённый, поэтому достаточно доступного канала доставки файла: веб-загрузка, обмен файлом, API-обработка изображений или сервисная точка, принимающая PSD.

Возможный сценарий атаки​


Сценарий строится вокруг сервиса, который принимает PSD от внешнего пользователя и загружает его через SAIL.

Пользователь отправляет файл. Сервис вызывает sail_load_from_file() на этом файле. Внутри SAIL одноканальный Bitmap color mode переводится в однобитный формат, но depth == 8 приводит к записи байтов за пределы строки буфера.

Запись может повредить память процесса сервиса. Если сервис работает с правами приложения или под пользователем, последствия ограничены этим процессом. Если библиотека используется в более привилегированном контексте или рядом находятся критичные объекты памяти, повреждение может быть шире.

В Debian важно учитывать статус пакета: если sail установлен из trixie и версия 0.9.8-1+deb13u1, система остаётся в зоне риска до появления исправления.

Есть ли публичный эксплойт​


В предоставленных источниках нет отдельного подтверждения публичного эксплойта.

Имеются ссылки на commit f44a8b779a1fc527fc6bc5caa71a66a8ed940d50, release v1.0.0 и advisory GHSA-ccqf-rv86-h3wm.

Commit и advisory описывают саму проблему и исправление, но не содержат отдельного раздела с готовым эксплойтом или подтверждённой эксплуатацией в реальных инцидентах.

Отсутствие публичного эксплойта в предоставленных данных не означает, что техническое описание невозможно использовать. Механика записи за пределы буфера при загрузке crafted PSD достаточно конкретна: однобитный формат, depth == 8, запись байтов на пиксель и выход за пределы строки кучи.

Признаки эксплуатации​


Специфичных IOC для CVE-2026-54627 в предоставленных источниках не указано.

Ниже приведены общие и неспецифичные точки контроля:

  • Внезапные сбои процессов, работающих с изображениями PSD.
  • Рост количества segfault или abort в сервисах загрузки изображений.
  • Непривычные изменения памяти процесса: ошибки heap corruption, ASLR/stack canary failures, abnormal exit codes.
  • Файлы PSD с необычной структурой: одноканальный Bitmap color mode при depth == 8.
  • Запросы к API или сервисам обработки изображений с нестандартными PSD-файлами.
  • Рост нагрузки на память в процессах, использующих SAIL.

Эти признаки не являются подтверждёнными IOC именно для CVE-2026-54627 и могут появляться при других сбоях.

Как обнаружить атаку​


Для обнаружения атаки или эксплуатации можно использовать несколько уровней контроля.

  • Проверка версии пакета sail в Debian: если версия ниже исправленной, система уязвима.
  • Мониторинг логов приложений, обрабатывающих PSD, на ошибки heap corruption и abnormal termination.
  • Анализ загружаемых PSD-файлов на несоответствие формата: одноканальный Bitmap color mode при depth == 8.
  • Проверка журналов процесса на повторные сбои после загрузки конкретных файлов.
  • Использование debug-сборки или memory checker для локальной проверки поведения SAIL с подозрительными файлами, если это применимо к вашей инфраструктуре.

Для Debian конкретная проверка версии пакета важнее общих сигнатур: статус trixie open делает проверку версии обязательной.

Как проверить свою версию​


Команды ниже подходят для проверки версии Debian и пакета sail. Замените <имя-пакета> на имя пакета, если проверяете не sail.

Bash:
cat /etc/debian_version

Bash:
cat /etc/os-release

Bash:
apt-cache policy <имя-пакета>

Bash:
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>

Для sail можно проверить:

Bash:
apt-cache policy sail

Bash:
dpkg-query -W -f='${Package} ${Version}\n' sail

Если установлен пакет с версией 0.9.x или ниже, система соответствует диапазону уязвимости из описания CVE. Для Debian важно сопоставить версию пакета с релизом: forky и sid resolved, trixie open.

Исправление​


Исправление для Debian зависит от релиза.

  • forky: обновить sail до 1.2.0-1.
  • sid: обновить sail до 1.2.0-1.
  • trixie: по данным Debian Security Tracker статус open, версия 0.9.8-1+deb13u1; до появления исправления требуется ограничивать обработку PSD или применять временные меры.

Обновление пакета:

Bash:
apt update

Bash:
apt upgrade sail

Если пакет не обновляется из репозитория, проверить статус в Debian Security Tracker: Debian Security Tracker — CVE-2026-54627.

Upstream-исправление указано для версии 1.0.0, а в Debian для forky и sid зафиксирована версия 1.2.0-1.

Временные меры защиты​


Пока нет исправления для trixie или до обновления пакета sail можно снизить риск.

  • Ограничить приём PSD от внешних источников.
  • Не передавать пользовательские PSD в процессы, работающие с привилегиями.
  • Разделять обработку изображений в отдельном процессе с минимальными правами.
  • Отключить или ограничить API-эндпоинты, которые принимают PSD и вызывают sail_load_from_file() или sail_load_from_memory().
  • Проверять PSD на подозрительную комбинацию: одноканальный Bitmap color mode при depth == 8.
  • Хранить логи процессов обработки изображений для быстрого обнаружения сбоев.

Эти меры не устраняют уязвимость, а уменьшают поверхность и последствия.

Как проверить устранение уязвимости​


После обновления нужно подтвердить, что пакет sail имеет исправленную версию.

Bash:
dpkg-query -W -f='${Package} ${Version}\n' sail

Для forky и sid целевая версия по Debian Security Tracker — 1.2.0-1.

Также проверить статус релиза:

  • forky: resolved.
  • sid: resolved.
  • trixie: open.

Если команда показывает версию ниже исправленной, обновление не завершено или пакет не обновился из репозитория.

Дополнительно можно запустить приложение с тестовыми PSD-файлами и убедиться, что сбои heap corruption исчезли. Если после обновления процесс стабильно обрабатывает файлы без abnormal termination, это дополнительный признак корректности исправления.

Вывод​


CVE-2026-54627 в Debian — критическая проблема памяти в пакете sail. Уязвимость связана с загрузкой crafted PSD и записью за пределы буфера при несовместимости однобитного формата и depth == 8.

Для forky и sid статус resolved, для trixie open. Главные действия: проверить версию пакета sail, обновить до 1.2.0-1 там, где доступно, и ограничить обработку внешних PSD в trixie до появления исправления.

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


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

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


  • 21.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ