CVE: CVE-2026-45538
Продукт: Ubuntu
Дата публикации: 05.08.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,48%; процентиль 38,99%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-45538 в OpenSIPS, реализующем сервер SIP, позволяет вызвать переполнение стекового буфера при обработке SIP-сообщений с заголовками длиной более 255 байт. Это может привести к отказу в обслуживании или удаленному выполнению кода. Уязвимость затрагивает версии OpenSIPS до 4.0.0 и касается систем, где функция sip_to_json() используется в скриптах маршрутизации.
Базовые сведения о записи CVE и оценке риска приведены в [1].
Основные характеристики
Уязвимость связана с функцией
sip_to_json() в модуле sipmsgops OpenSIPS. При вызове этой функции имя заголовка SIP копируется в стековый буфер размером 255 байт без проверки длины. Если имя заголовка превышает это значение, происходит переполнение буфера, что позволяет контролировать адрес возврата и сохраненный указатель фрейма. Возможна атака типа удалённое выполнение кода (RCE), если система не защищена механизмами защиты стека. Атака возможна через один неаутентифицированный UDP-пакет на порт 5060. Уязвимость не была исправлена на момент публикации.Какие продукты и версии затронуты
В Ubuntu затронуты пакеты OpenSIPS версии 2.2.2-3build4, распространяемые в составе Ubuntu 18.04 LTS. Включают в себя основной пакет
opensips и ряд модулей, таких как opensips-b2bua-module, opensips-berkeley-module, opensips-carrierroute-module и другие. Все указанные бинарные файлы подвержены уязвимости при использовании в скриптах маршрутизации, где вызывается функция sip_to_json().Причина уязвимости
Проблема возникает из-за отсутствия проверки длины имени заголовка SIP при вызове функции
sip_to_json() в модуле sipmsgops. Функция выполняет memcpy с произвольной длиной имени заголовка в буфер фиксированного размера (255 байт), что приводит к переполнению стека. Уязвимость классифицирована как CWE-121 — Stack-based Buffer Overflow. Уязвимость не устранена в версиях до 4.0.0.Как работает атака
Атакующий отправляет SIP-сообщение с именем заголовка длиной более 255 байт. При обработке сообщения функция
sip_to_json() вызывается в скрипте маршрутизации, что приводит к переполнению стека. Если система не защищена механизмами ASLR/stack canary, злоумышленник может перезаписать указатель возврата и выполнить произвольный код. Атака требует только одного UDP-пакета на порт 5060, что делает её особенно опасной для сетевых сервисов SIP.Условия успешной эксплуатации
Для успешной эксплуатации уязвимости необходимо, чтобы система использовала OpenSIPS с активным скриптом маршрутизации, вызывающим функцию
sip_to_json(). Также важно, чтобы система не применяла механизмы защиты стека, такие как stack canary или ASLR. Уязвимость не зависит от аутентификации и может быть использована с любого IP-адреса.Возможный сценарий атаки
Система с OpenSIPS 2.2.2-3build4, работающая как SIP-сервер, получает UDP-пакет с заголовком длиной более 255 байт. При обработке пакета вызывается
sip_to_json(), что приводит к переполнению стека. Если система не защищена, злоумышленник может перехватить управление и выполнить произвольный код. Атака может быть использована для получения полного контроля над сервером или его принудительного отказа в обслуживании.Есть ли публичный эксплойт
На момент публикации уязвимость не имеет подтвержденного эксплойта в открытом доступе. Однако техническое описание уязвимости включает подробную информацию о том, как можно использовать переполнение стека для достижения RCE. Отсутствие публичного PoC не исключает потенциальную эксплуатацию уязвимости вредоносными организациями или вредоносным ПО.
Признаки эксплуатации
Нет специфичных IOC для данной уязвимости. Однако можно наблюдать аномалии в логах SIP-сервера, такие как неожиданные ошибки обработки заголовков или необычные пакеты с большими именами заголовков. Для мониторинга рекомендуется анализировать трафик на порту 5060 и отслеживать аномалии в работе OpenSIPS.
Как обнаружить атаку
Для обнаружения уязвимости необходимо проверить версию установленного пакета OpenSIPS и наличие скриптов маршрутизации, вызывающих
sip_to_json(). Также можно проанализировать логи OpenSIPS на предмет необычных значений заголовков. Наличие уязвимости не подтверждается автоматически, требуется ручная проверка конфигураций.Как проверить свою версию
Для проверки версии OpenSIPS в Ubuntu выполните следующие команды:
Bash:
apt-cache policy opensips
или
Bash:
apt list --installed | grep opensips
Если установленная версия ниже 4.0.0, система подвержена уязвимости. Рекомендуется также проверить, используются ли скрипты маршрутизации с вызовом
sip_to_json().Исправление
Единственный способ устранить уязвимость — обновление OpenSIPS до версии 4.0.0 или выше. В случае отсутствия обновлений, рекомендуется отключить или ограничить использование функции
sip_to_json() в скриптах маршрутизации. Также следует рассмотреть возможность применения дополнительных мер защиты, таких как фильтрация входящего трафика на уровне сети.Временные меры защиты
Временные меры защиты включают ограничение доступа к порту 5060 через брандмауэр, отключение функции
sip_to_json() в скриптах маршрутизации, а также применение средств обнаружения аномалий в трафике SIP. Эти действия могут снизить риск эксплуатации уязвимости до момента установки исправления.Как проверить устранение уязвимости
После обновления OpenSIPS до версии 4.0.0 или выше, необходимо проверить, что версия пакета корректно установлена:
Bash:
apt-cache policy opensips
Также рекомендуется перезапустить службу OpenSIPS и убедиться, что она работает корректно. Проверка конфигураций скриптов маршрутизации также важна для подтверждения отсутствия использования уязвимой функции.
Вывод
CVE-2026-45538 представляет собой серьезную уязвимость в OpenSIPS, которая может быть использована для удаленного выполнения кода. Уязвимость затрагивает Ubuntu 18.04 LTS и все системы, использующие версии OpenSIPS до 4.0.0. Рекомендуется немедленно обновить систему до последней версии или применить временные меры защиты. Отсутствие подтвержденного эксплойта не исключает возможность его использования в реальных атаках.
Официальные источники
История обновлений статьи
- 07.08.2026 — Опубликована первая версия материала.
