CVE-2026-90558 в Ubuntu: переполнение стека в sngrep при обработке SIP-заголовков

CVE: CVE-2026-90558
Продукт: Ubuntu
Дата публикации: 12.09.2026
Критичность: CRITICAL
CVSS: 9.3 (4.0)
EPSS: 0,51%; процентиль 41,78%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


В утилите sngrep, распространяемой в дистрибутивах Ubuntu, обнаружено переполнение стека при обработке SIP-заголовков. Ошибка позволяет атакующему вызвать сбой или выполнить код, отправив пакет с заголовком Call-ID или X-Call-ID, превышающим 255 байт. Статья описывает затронутые версии Ubuntu, механизм атаки и способы проверки статуса пакета.

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


Уязвимость позволяет нарушителю, имеющему доступ к сети, перехватить управление процессом sngrep, обрабатывающим SIP-трафик. Это может привести к отказу в обслуживании или удаленному выполнению кода.

  • Тип ошибки: CWE-121 (Stack-based Buffer Overflow). Стек переполняется при копировании данных из заголовка SIP в фиксированный буфер.
  • CVSS v4.0: 9.3 (CRITICAL). Вектор: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Высокий риск для конфиденциальности, целостности и доступности.
  • Условия атаки: Сетевой доступ, отсутствие необходимости в аутентификации или взаимодействии пользователя.
  • Эксплуатация: Публичные данные о подтвержденной эксплуатации в реальных атаках отсутствуют.
  • EPSS: 0,51% (процентиль 41,78%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая.

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


Уязвимость затрагивает пакет sngrep во всех поддерживаемых LTS-релизах Ubuntu, начиная с 16.04. В официальных базах данных Ubuntu для всех перечисленных версий указано, что уязвимость присутствует с момента первого появления пакета (introduced: 0).

  • Ubuntu 16.04 LTS (xenial): версия 1.2.0-1build1.
  • Ubuntu 18.04 LTS (bionic): версия 1.4.5-1.
  • Ubuntu 20.04 LTS (focal): версия 1.4.6-2.
  • Ubuntu 22.04 LTS (jammy): версия 1.4.10-1ubuntu0.1.
  • Ubuntu 24.04 LTS (noble): версия 1.8.0-1build2.
  • Ubuntu 26.04 LTS (resolute): версия 1.8.3-1.

Для всех указанных версий в базе данных Ubuntu OSV не указаны исправленные версии (availability: null), что означает, что на момент публикации данных патч еще не был доступен или не был зафиксирован в системе отслеживания.

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


Причина уязвимости кроется в функции форматирования атрибутов SIP в исходном коде sngrep. При обработке заголовков, таких как Call-ID или X-Call-ID, данные копируются в локальный буфер на стеке, размер которого составляет 255 байт.

Программа не выполняет проверку длины входных данных перед копированием. Если атакующий отправляет SIP-пакет с заголовком, превышающим этот лимит, происходит переполнение стека. Это нарушает целостность данных на стеке, что может привести к перезаписи указателя возврата или других критических структур, что в свою очередь вызывает сбой процесса или выполнение произвольного кода.

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


Атакующий должен иметь сетевой доступ к узлу, на котором запущен sngrep в режиме анализа SIP-трафика. Механизм атаки не требует аутентификации, так как sngrep обрабатывает пакеты, проходящие через сеть, независимо от того, являются ли они адресованными конкретному хосту.

Атакующий формирует SIP-сообщение, в котором значение поля Call-ID или X-Call-ID превышает 255 байт. При получении такого пакета sngrep пытается отформатировать его для вывода в консоль или лог. В этот момент происходит переполнение стека.

В зависимости от архитектуры и настроек безопасности (ASLR, stack canaries) атакующий может добиться либо немедленного сбоя (DoS), либо контроля над потоком выполнения программы.

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


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

  • Сетевой доступ: Возможность отправлять IP-пакеты на хост, где запущен sngrep.
  • Активный анализ SIP: sngrep должен быть запущен и настроен на перехват и анализ SIP-трафика.
  • Отсутствие защиты: Эффективность атаки может снижаться, если в системе активны механизмы защиты от переполнения стека (например, stack canaries, ASLR), однако они не гарантируют полную защиту от этой конкретной ошибки.

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


Сценарий атаки начинается с того, что атакующий сканирует сеть в поисках хостов, где запущен sngrep. После обнаружения цели атакующий отправляет специально сформированный SIP-пакет. В заголовке Call-ID содержится строка длиной более 255 байт.

При обработке этого пакета sngrep вызывает функцию форматирования, которая копирует данные в буфер на стеке. Происходит переполнение, и процесс sngrep аварийно завершается.

Если атакующему удалось точно рассчитать смещение, он может перезаписать указатель возврата и перенаправить выполнение на вредоносный код, загруженный в память. Результатом может стать удаленное выполнение кода с правами процесса sngrep.

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


На момент публикации данных публичный эксплойт для CVE-2026-90558 не подтвержден. В базах данных и официальных advisories отсутствуют ссылки на работающие PoC или подтвержденную эксплуатацию в реальных атаках. Наличие ссылки на исправление в репозитории GitHub указывает на то, что разработчики осведомлены об ошибке и подготовили фикс, однако статус публичной доступности эксплойта остается неопределенным.

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


Специфичные индикаторы компрометации (IOC) для этой уязвимости не опубликованы. Общие признаки, которые могут указывать на попытку атаки, включают:

  • Аварийные завершения процесса: Частые сбои процесса sngrep, сопровождающиеся сообщениями об ошибке сегментации (segfault) в логах.
  • Аномальный трафик: Пакеты SIP с аномально длинными заголовками Call-ID или X-Call-ID, превышающими стандартные размеры.
  • Необычная активность: Запуск неизвестных процессов или сетевые соединения, инициированные процессом sngrep, что может свидетельствовать об успешном выполнении кода.

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


Для обнаружения попыток эксплуатации рекомендуется:

  • Мониторинг логов: Анализ логов sngrep и системных журналов на предмет аварийных завершений процесса. Ищите сообщения, связанные с переполнением стека или некорректной памятью.
  • Сетевой анализ: Использование IDS/IPS для фильтрации SIP-пакетов с заголовками, превышающими разумные лимиты длины. Это может помочь в перехвате атакующих пакетов до их обработки.
  • Проверка целостности: Регулярная проверка состояния процесса sngrep и его окружения на предмет изменений, которые могут указывать на компрометацию.

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


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

Bash:
# Проверка версии ОС
cat /etc/os-release

# Проверка версии ядра
uname -r

# Проверка версии пакета sngrep
apt-cache policy sngrep

# Проверка статуса безопасности Ubuntu
ubuntu-security-status

Команда apt-cache policy sngrep покажет установленную версию и доступные версии в репозиториях. Если в выводе указаны исправленные версии, их следует установить.

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


Основным методом устранения уязвимости является обновление пакета sngrep до версии, содержащей исправление. Поскольку в базе данных Ubuntu на момент публикации данных не указаны конкретные исправленные версии, рекомендуется:

  • Обновить систему: Выполнить sudo apt update && sudo apt upgrade для получения последних обновлений безопасности.
  • Проверить репозитории: Убедиться, что подключены репозитории безопасности Ubuntu, где публикуются патчи для критических уязвимостей.
  • Следить за обновлениями: Регулярно проверять страницу Ubuntu Security для получения информации о выпуске исправлений.

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


До выпуска официального исправления можно применить следующие временные меры:

  • Ограничение доступа: Ограничить сетевой доступ к хостам, где запущен sngrep, доверенным источникам.
  • Отключение анализа SIP: Если возможно, временно отключить анализ SIP-трафика в sngrep, чтобы избежать обработки потенциально вредоносных пакетов.
  • Использование прокси: Разместить перед sngrep прокси-сервер или firewall, который будет отфильтровывать SIP-пакеты с аномально длинными заголовками.

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


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

  • Проверка версии: Убедиться, что установлена версия, содержащая исправление, используя apt-cache policy sngrep.
  • Функциональное тестирование: Провести тестирование с использованием SIP-пакетов с заголовками, превышающими 255 байт, чтобы убедиться, что процесс sngrep не завершается аварийно.
  • Аудит логов: Проверить логи на предмет отсутствия новых аварийных завершений после обновления.

Вывод​


CVE-2026-90558 представляет собой серьезную угрозу для систем, использующих sngrep для анализа SIP-трафика. Уязвимость позволяет атакующему вызвать сбой или выполнить код, отправив специально сформированный SIP-пакет. Администраторам следует оперативно проверить статус пакета sngrep, ограничить сетевой доступ до выпуска исправления и следить за официальными обновлениями от Ubuntu.

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


  1. NVD — CVE-2026-90558
  2. Ubuntu OSV — CVE-2026-90558
  3. FIRST EPSS — CVE-2026-90558

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


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