CVE: CVE-2026-78689
Продукт: Ubuntu
Дата публикации: 02.09.2026
Критичность: CRITICAL
CVSS: 9.2 (4.0)
EPSS: 0,41%; процентиль 34,45%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В пакете
libnginx-mod-js для Ubuntu обнаружена уязвимость, позволяющая удалённому атакующему вызвать отказ в обслуживании или потенциально выполнить код. Ошибка связана с обработкой XML-именных пространств в движках njs и QuickJS. Материал описывает механику срабатывания, затронутые версии и шаги по проверке и обновлению системы.Основные характеристики
Риск заключается в возможности удалённого атакующего повредить память процесса NGINX через специально сформированный XML-документ. Это может привести к падению воркера или, в отдельных сценариях, к выполнению кода.
- Классификация: CWE-122 (Heap-based Buffer Overflow). Ошибка связана с записью за пределы выделенной области памяти.
- CVSS 4.0: 9.2 (CRITICAL). Вектор:
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N.
- CVSS 3.1: 9.8 (CRITICAL). Вектор:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H.
- EPSS: 0,41% (процентиль 34,45%). Показатель отражает вероятность эксплуатации в ближайшие 30 дней.
- Статус: Публичный эксплойт не подтверждён, но возможность выполнения кода не исключена.
Какие продукты и версии затронуты
Согласно данным Ubuntu OSV, уязвимость затрагивает пакет
libnginx-mod-js в следующих средах:- Ubuntu 24.04 LTS (noble): версия
0.8.2-1ubuntu1.
- Ubuntu Pro 26.04 LTS (resolute): версия
0.9.4-1ubuntu0.1~esm1.
В состав пакета входят бинарные компоненты
libnginx-mod-http-js, libnginx-mod-stream-js и njs. Все перечисленные версии считаются уязвимыми.Причина уязвимости
Причина ошибки — отсутствие проверки границ при обработке списка префиксов XML-именных пространств в модуле XML движка njs. Метод
xml.exclusiveC14n() принимает входные данные и передаёт их в парсер, который не валидирует длину списка относительно размера выделенного в куче буфера.При обработке вредоносного списка происходит запись за пределы выделенной области (out-of-bounds write). В движке njs это повреждает соседние объекты памяти и вызывает аварийное завершение воркера NGINX. В движке QuickJS (qjs) аналогичный вызов дополнительно приводит к утечке памяти при каждой итерации, что вызывает неконтролируемый рост потребления ресурсов воркерами.
Как работает атака
Атакующий направляет на сервер NGINX специально сформированный XML-документ или SAML-сообщение. В нём атрибут
InclusiveNamespaces/@PrefixList содержит вредоносный список префиксов.Конфигурация, использующая модуль
nginx-saml или аналогичную логику, извлекает этот список и передаёт его в xml.exclusiveC14n() до проверки цифровой подписи сообщения.Парсер njs обрабатывает данные и выполняет запись за пределы выделенной памяти. Это приводит к повреждению структур данных в памяти воркера.
Результатом становится аварийное завершение процесса (отказ в обслуживании) или, в зависимости от условий, выполнение произвольного кода. Аутентификация для запуска атаки не требуется.
Условия успешной эксплуатации
Для успешной эксплуатации необходимо соблюдение следующих условий:
- Сервер работает на уязвимой версии пакета
libnginx-mod-js.
- В конфигурации NGINX используется модуль, передающий внешние XML-данные в метод
xml.exclusiveC14n()(например,nginx-samlпри верификации подписей).
- Атакующий имеет сетевой доступ к порту, на котором слушает уязвимый сервис.
Возможный сценарий атаки
Атакующий формирует SAML-сообщение (Response, Assertion, LogoutRequest или LogoutResponse), в котором атрибут
InclusiveNamespaces/@PrefixList содержит специально сконструированный список префиксов. Сообщение отправляется на endpoint, обрабатывающий SAML-аутентификацию.Модуль
nginx-saml извлекает список префиксов из недоверенного сообщения и передаёт его в xml.exclusiveC14n() до проверки подписи. Парсер njs обрабатывает данные и вызывает out-of-bounds write.Воркер NGINX аварийно завершает работу. Повторяя отправку таких сообщений, атакующий может вызвать устойчивый отказ в обслуживании. В некоторых сценариях повреждение памяти может привести к выполнению кода.
Есть ли публичный эксплойт
Публичный эксплойт для CVE-2026-78689 не подтверждён. В официальных источниках указано, что выполнение кода не продемонстрировано, но не может быть исключено для всех платформ. Отсутствие публичного эксплойта не означает, что уязвимость не может быть эксплуатирована.
Признаки эксплуатации
Специфичные индикаторы компрометации (IOC) для этой уязвимости в источниках не раскрыты. Общие признаки, которые могут указывать на эксплуатацию, включают:
- Частые аварийные завершения (crash) воркеров NGINX.
- Необъяснимый рост потребления памяти воркерами NGINX.
- Запросы к SAML-endpoint с аномально длинными или специально сформированными XML-атрибутами.
Как обнаружить атаку
Для обнаружения атаки рекомендуется мониторинг логов NGINX и системы:
- Анализ логов ошибок NGINX на предмет аварийных завершений воркеров.
- Мониторинг потребления памяти процессами
nginx.
- Проверка логов доступа на наличие аномальных запросов к SAML-сервисам с подозрительными XML-параметрами.
Специфичные сигнатуры для IDS/IPS в источниках не приведены.
Как проверить свою версию
Для проверки версии установленных пакетов используйте следующие команды:
Bash:
cat /etc/os-release
uname -r
apt-cache policy libnginx-mod-js
ubuntu-security-status
Команда
apt-cache policy покажет установленную и доступную версии пакета. Замените <имя-пакета> на libnginx-mod-js при необходимости проверки конкретного компонента.Исправление
Для устранения уязвимости необходимо обновить пакет
libnginx-mod-js до исправленной версии. Используйте стандартные средства обновления Ubuntu:
Bash:
sudo apt update
sudo apt upgrade libnginx-mod-js
После обновления перезапустите сервис NGINX:
Bash:
sudo systemctl restart nginx
Убедитесь, что все воркеры перезапущены и работают на новой версии.
Временные меры защиты
До применения обновления можно рассмотреть следующие временные меры:
- Отключите модуль
nginx-samlили другие компоненты, использующиеxml.exclusiveC14n(), если это позволяет бизнес-логика.
- Ограничьте доступ к SAML-endpoint на уровне файрвола до доверенных IP-адресов.
- Настройте мониторинг на аварийные завершения воркеров NGINX для быстрого обнаружения атаки.
Как проверить устранение уязвимости
Для проверки успешного применения исправления выполните:
Bash:
apt-cache policy libnginx-mod-js
Убедитесь, что установленная версия соответствует исправленной. Проверьте статус сервиса:
Bash:
sudo systemctl status nginx
Убедитесь, что воркеры работают стабильно и не завершаются аварийно. Проверьте логи на предмет ошибок после перезапуска.
Вывод
CVE-2026-78689 представляет серьёзную угрозу для систем Ubuntu, использующих модуль
libnginx-mod-js в связке с SAML-аутентификацией. Обновление пакетов до исправленных версий является приоритетной задачей. Администраторам следует проверить версии установленных пакетов, применить обновления и убедиться в стабильной работе сервисов после перезапуска.Официальные источники
История обновлений статьи
- 06.09.2026 — Опубликована первая версия материала.
