CVE-2026-94083 в Debian: DoH2 type confusion в Suricata и статус исправлений

CVE: CVE-2026-94083
Продукт: Debian
Дата публикации: 20.09.2026
Критичность: CRITICAL
CVSS: 9.4 (3.1)
EPSS: 0,40%; процентиль 34,21%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


В Debian CVE-2026-94083 затрагивает пакет suricata до версии 1:8.0.7-1. Ошибка возникает при обработке запросов DoH2 с переходом HTTP1 на HTTP2: код очистки состояния HTTP2 выполняется, хотя фактическое состояние — HTTP1, что приводит к некорректному освобождению памяти. В Debian stable trixie исправление ещё не подтверждено; в forky и sid опубликована версия 1:8.0.7-1.

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


Риск связан с некорректным управлением состоянием HTTP2 в Suricata при обработке DoH2-запросов, где происходит upgrade с HTTP1 на HTTP2. Ошибка приводит к invalid free и потенциальному нарушению целостности памяти процесса Suricata.

  • Тип ошибки: CWE-843 — incorrect memory deallocation; type confusion между состояниями HTTP1 и HTTP2.
  • CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L, оценка 9.4, критическая.
  • Условие активации: включённый протокол DoH2 в Suricata; по умолчанию включён в версиях 8.x.
  • Факт эксплуатации: не подтверждён доступными источниками.
  • EPSS: 0,40%; процентиль 34,21%.

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


В Debian затронут пакет suricata.

  • forky: версия до 1:8.0.7-1 уязвима; исправление доступно в репозитории forky.
  • sid: версия до 1:8.0.7-1 уязвима; исправление доступно в репозитории sid.
  • trixie: статус open; текущая версия 1:7.0.10-1+deb13u4 не содержит подтверждённого исправления CVE-2026-94083.

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


Suricata до 8.0.7 хранит состояние HTTP2 для обработки DoH2-запросов. При запросе с upgrade с HTTP1 на HTTP2 код очистки состояния HTTP2 выполняется, хотя фактическое состояние соединения остаётся HTTP1.

Это приводит к несовпадению типа объекта и его текущего состояния: память, связанная с HTTP2 state, освобождается как если бы соединение было в состоянии HTTP2, тогда как реальное состояние — HTTP1. В результате возникает invalid free.

Ошибка относится к классу type confusion (CWE-843), где неправильный тип или состояние объекта приводит к некорректному управлению памятью.

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


Атака направлена на процесс Suricata, обрабатывающий DoH2-запросы с HTTP1-to-HTTP2 upgrade.

Запрос приходит в Suricata как DoH2. При обработке upgrade состояние соединения должно перейти из HTTP1 в HTTP2. Однако код очистки состояния HTTP2 вызывается независимо от фактического состояния: он выполняется даже когда соединение всё ещё находится в режиме HTTP1.

Некорректный вызов освобождает память, связанную с HTTP2 state, хотя объект фактически относится к HTTP1-состоянию. Это может привести к повреждению памяти процесса Suricata.

После invalid free возможны последствия: повреждение данных, сбой обработки запросов, нарушение целостности состояния соединения или более глубокое влияние на процесс в зависимости от того, как память используется после освобождения.

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


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

  • Suricata версии до 8.0.7.
  • Включённый протокол DoH2: app-layer.protocols.doh2 должен быть активирован; в версиях 8.x он включён по умолчанию.
  • Обработка запроса с HTTP1-to-HTTP2 upgrade в рамках DoH2.
  • Доступ к Suricata как к сетевому сервису, принимающему такие запросы.

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


Сценарий предполагает взаимодействие с Suricata через сеть.

Атакующий направляет DoH2-запрос, содержащий upgrade с HTTP1 на HTTP2. Suricata обрабатывает запрос и переходит в логику обработки HTTP2 state.

При этом код очистки состояния HTTP2 выполняется, хотя фактическое состояние соединения — HTTP1. Происходит некорректное освобождение памяти.

После этого атакующий может продолжать отправлять запросы или эксплуатировать повреждённое состояние процесса Suricata в рамках доступных сетевых интерфейсов.

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


Доступные источники подтверждают наличие ошибки и публикацию исправления в Suricata 8.0.7.

  • PoC: не подтверждён как отдельный публичный артефакт.
  • Техническое описание: доступно через описание CVE, commit и сравнение версий.
  • Подтверждённая эксплуатация: не подтверждена доступными источниками.

Отсутствие сведений об эксплуатации не означает, что она невозможна. Ошибка приводит к invalid free, что технически создаёт основу для дальнейших действий над памятью процесса Suricata.

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


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

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

  • Рост количества ошибок в логах Suricata при обработке DoH2-запросов.
  • Нестабильность процесса Suricata: повторные рестарты, падение сервиса.
  • Аномальные значения памяти или CPU у процесса Suricata во время обработки сетевых запросов.
  • Наличие незакрытых соединений или зависших HTTP2/HTTP1 сессий в мониторинге.

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


Для обнаружения атаки можно использовать следующие подходы:

  • Мониторинг логов Suricata на ошибки, связанные с обработкой DoH2 и HTTP2 state.
  • Контроль состояния процесса Suricata: CPU, память, количество открытых соединений.
  • Анализ сетевых запросов к порту Suricata на наличие DoH2-запросов с upgrade.
  • Проверка версий установленного пакета suricata через apt-cache policy или dpkg-query.

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


Проверка версии Debian и пакета suricata:

Bash:
cat /etc/debian_version

Bash:
cat /etc/os-release

Bash:
apt-cache policy suricata

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

Если версия ниже 1:8.0.7-1, пакет уязвим.

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


Исправление CVE-2026-94083 доступно для Debian forky и sid в версии suricata 1:8.0.7-1.

  • forky: обновите suricata до 1:8.0.7-1 из репозитория forky.
  • sid: обновите suricata до 1:8.0.7-1 из репозитория sid.
  • trixie: исправление не подтверждено; статус open. Требуется отслеживать обновления от Debian Security Tracker.

Обновление выполняется стандартными механизмами пакетного менеджера Debian.

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


Пока исправление недоступно или не установлено, можно снизить риск:

  • Отключить протокол DoH2 в конфигурации Suricata: app-layer.protocols.doh2.
  • Ограничить доступ к порту Suricata до доверенных источников.
  • Мониторинг состояния процесса Suricata и логи ошибок.
  • Изолировать сервис Suricata от критичных сетевых сегментов, если это возможно.

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


После обновления проверьте версию пакета:

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

Версия должна быть 1:8.0.7-1 или выше.

Проверьте статус в Debian Security Tracker: Debian Security Tracker — CVE-2026-94083.

После обновления можно проверить, что сервис Suricata работает без ошибок и что DoH2-запросы обрабатываются корректно.

Вывод​


CVE-2026-94083 — критическая ошибка в Suricata до 8.0.7, связанная с type confusion между HTTP1 и HTTP2 state при обработке DoH2-запросов. Ошибка приводит к invalid free и потенциальному нарушению целостности памяти процесса.

В Debian forky и sid исправление доступно в версии 1:8.0.7-1. В trixie статус open, подтверждённого исправления нет. До обновления рекомендуется отключить DoH2 или ограничить доступ к Suricata.

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


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

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


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