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.
Официальные источники
История обновлений статьи
- 15.09.2026 — Опубликована первая версия материала.
