CVE-2026-18798 в Ubuntu: отказ в обслуживании QUIC-сервера и обновление OpenSSL

CVE: CVE-2026-18798
Продукт: Ubuntu
Дата публикации: 25.08.2026
Критичность: HIGH
CVSS: 7.5 (3.1)
EPSS: 1,48%; процентиль 71,65%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


Ubuntu выпустила обновление для CVE-2026-18798, устраняющее двойное освобождение памяти в стеке QUIC OpenSSL. Уязвимость позволяет удалённому атакующему вызвать сбой процесса сервера, отправив некорректный INITIAL-пакет. Статья разбирает механику дефекта, затронутые версии пакетов и порядок применения исправления.

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


Риск представляет собой отказ в обслуживании (DoS) для сервисов, использующих QUIC-реализацию OpenSSL. Атака не требует аутентификации и приводит к завершению работы процесса, но не даёт доступа к данным или коду.

  • Тип ошибки: CWE-415 (Double Free). Ошибка управления памятью, приводящая к повреждению кучи.
  • CVSS 3.1: 7.5 (HIGH). Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H. Высокая оценка обусловлена сетевой доступностью и отсутствием требований к привилегиям.
  • Условия атаки: Атакующий должен иметь сетевой доступ к порту QUIC-сервера. Пользовательское взаимодействие не требуется.
  • Эксплуатация: Подтверждена возможность вызова сбоя. Эксплуатация для удалённого выполнения кода (RCE) считается маловероятной.
  • EPSS: 1,48%. Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая (процентиль 71,65%).

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


Исправление распространяется на несколько версий Ubuntu и связанных пакетов. Для Ubuntu 26.04 LTS (resolute) обновление доступно без подписки.

  • Ubuntu 26.04 LTS (resolute): Пакет openssl версии 3.5.5-1ubuntu3.4. Затронуты бинарные пакеты libssl3t64, openssl, openssl-provider-legacy.
  • Ubuntu Pro 16.04 LTS (xenial): Пакет nodejs версии 4.2.6~dfsg-1ubuntu4.2+esm3. Требует подписку Ubuntu Pro.
  • Ubuntu Pro 18.04 LTS (bionic): Пакет nodejs версии 8.10.0~dfsg-2ubuntu0.4+esm6. Требует подписку Ubuntu Pro.
  • Ubuntu Pro FIPS (22.04/24.04 LTS): Пакет openssl-fips в версиях 3.0.5-0ubuntu0.1+Fips2.1, 3.0.5-0ubuntu0.2+Fips1 и 3.0.13-0ubuntu3.12+Fips1. Требует подписку Ubuntu Pro.
  • Ubuntu 26.04 LTS (resolute): Пакеты edk2 и edk2-hwe также включены в список обновлений, хотя основная уязвимость связана с OpenSSL.

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


Причина дефекта кроется в логике обработки начальных пакетов QUIC в функции port_default_packet_handler(). При валидации INITIAL-пакета создаётся объект QRX (QUIC record layer RX). Если валидация проходит, объект передаётся в port_bind_channel() для создания соединения.

Проблема возникает при сбое функции port_bind_channel(). В этом случае функция освобождает объект QRX. Однако после возврата из port_bind_channel() обработчик пакетов обнаруживает ошибку и переходит в ветку обработки ошибок, где освобождает тот же самый объект QRX повторно.

Двойное освобождение приводит к повреждению структуры кучи (heap corruption), что вызывает аварийное завершение процесса. Сбой в port_bind_channel() можно спровоцировать, отправив пакет с DCID (destination connection ID) короче 8 байт. Функция ossl_quic_lcidm_enrol_odcid() обнаруживает некорректную длину и инициирует переход в ошибку.

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


Атакующий направляет на QUIC-сервер специально сформированный INITIAL-пакет, не соответствующий требованиям RFC 9000. Ключевой параметр — DCID, длина которого меньше 8 байт.

Сервер принимает пакет и начинает процесс валидации. Функция port_default_packet_handler() создаёт объект QRX. Поскольку пакет формально проходит начальную проверку, управление переходит к port_bind_channel(). Внутри этой функции проверка длины DCID завершается ошибкой, и объект QRX освобождается.

После возврата из port_bind_channel() с кодом ошибки, port_default_packet_handler() интерпретирует это как сбой создания канала и выполняет освобождение объекта QRX во второй раз. Повторный вызов free() на уже освобожденную память приводит к повреждению кучи. В большинстве случаев это вызывает сегментацию (segfault) и остановку процесса сервера.

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


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

  • Сетевой доступ: Наличие маршрута до порта, на котором работает QUIC-сервер, использующий уязвимую версию OpenSSL.
  • Отсутствие аутентификации: Уязвимость находится на уровне обработки пакетов до установления безопасного канала, поэтому учётные данные не требуются.
  • Способность отправлять пакеты: Атакующий должен иметь возможность формировать и отправлять QUIC-пакеты с некорректным DCID.
  • Целевая конфигурация: Сервер должен использовать библиотеку OpenSSL с уязвимым стеком QUIC. Если QUIC-реализация отключена или используется другая библиотека, риск отсутствует.

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


Сценарий атаки начинается с разведки: атакующий определяет хосты, предоставляющие сервисы по протоколу QUIC. После этого формируется пакет INITIAL с DCID длиной, например, 4 байта.

Пакет отправляется на целевой порт. Сервер обрабатывает его, создаёт объект QRX и пытается привязать канал. Из-за некорректной длины DCID функция port_bind_channel() завершается с ошибкой и освобождает объект. Обработчик пакетов, получив ошибку, освобождает объект повторно.

Процесс сервера получает сигнал об ошибке памяти и завершает работу. Если сервис не настроен на автоматический перезапуск, он остаётся недоступным. При наличии механизма перезапуска (systemd, supervisor) сервер может восстановиться, но каждый повторный запрос с таким пакетом будет вызывать новый сбой, что позволяет поддерживать состояние отказа в обслуживании.

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


Официальные источники подтверждают возможность вызова уязвимости с помощью некорректного пакета. В описании CVE указано, что сбой можно спровоцировать с относительно низкими усилиями.

На данный момент нет подтверждений о публичном эксплойте, позволяющем выполнить удалённый код (RCE). Разработчики OpenSSL характеризуют вероятность эксплуатации для RCE как «высоко маловероятную» (highly improbable).

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

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


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

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

  • Аварийное завершение процесса: Записи в логах о падении QUIC-сервера или процесса, использующего OpenSSL, с кодами ошибок, связанными с памятью (segfault, abort).
  • Повторяющиеся сбои: Регулярные перезапуски сервиса в короткие промежутки времени, особенно при нагрузке извне.
  • Аномальный трафик: Потоки QUIC-пакетов с некорректными заголовками (DCID < 8 байт) в сетевых логах, если они фиксируются.

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


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

  • Мониторинг процессов: Настройте алерты на аварийное завершение процессов, использующих OpenSSL QUIC. Используйте systemd-журналы или логи приложений.
  • Сетевая фильтрация: Если возможно, анализируйте трафик на уровне L4/L7. Ищите QUIC-пакеты INITIAL с DCID короче 8 байт. Это прямой триггер уязвимости.
  • Корреляция событий: Сопоставляйте время сбоев процесса с всплесками входящего трафика на соответствующий порт. Если сбой совпадает с попытками соединения от неизвестных IP, вероятна атака.

Для систем, где QUIC не является критическим сервисом, можно временно отключить его, чтобы исключить риск, и наблюдать за изменением поведения.

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


Для проверки, установлена ли уязвимая версия OpenSSL, используйте следующие команды. Замените <имя-пакета> на openssl или libssl3t64 в зависимости от вашей системы.

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

# Проверка версии ядра (для контекста)
uname -r

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

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

В выводе apt-cache policy openssl ищите строку с текущей установленной версией. Если версия ниже 3.5.5-1ubuntu3.4 (для Ubuntu 26.04) или аналогичных версий для других релизов, система уязвима. Для Ubuntu Pro-релизов проверьте пакеты nodejs и openssl-fips аналогичным образом.

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


Единственным надежным способом устранения уязвимости является обновление пакетов до исправленных версий. Ubuntu выпустила USN-8678-1, содержащий патч.

  • Ubuntu 26.04 LTS: Выполните sudo apt update && sudo apt upgrade openssl libssl3t64 openssl-provider-legacy. Убедитесь, что версия стала 3.5.5-1ubuntu3.4 или выше.
  • Ubuntu Pro (16.04/18.04/22.04/24.04): Подключите репозитории Ubuntu Pro (sudo pro attach <token>) и выполните обновление пакетов nodejs и openssl-fips.
  • Перезапуск сервисов: После обновления обязательно перезапустите все сервисы, использующие OpenSSL (веб-серверы, API-шлюзы, QUIC-серверы), чтобы загрузить новую библиотеку.

Не откладывайте обновление, так как атакующий может использовать уязвимость для отказа в обслуживании критических сервисов.

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


Если немедленное обновление невозможно, рассмотрите следующие временные меры:

  • Отключение QUIC: Если ваш сервис поддерживает QUIC, но он не является обязательным, отключите его в конфигурации. Это полностью устранит вектор атаки.
  • Сетевая фильтрация: На уровне файрвола или балансировщика нагрузки можно попытаться отфильтровать пакеты с некорректным DCID, однако это сложно реализовать без глубокого анализа QUIC-потока.
  • Ограничение доступа: Ограничьте доступ к порту QUIC только доверенными IP-адресами, если это позволяет бизнес-процесс.

Эти меры снижают риск, но не заменяют установку патча. Они должны рассматриваться как временное решение.

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


После применения обновлений проверьте, что уязвимость устранена.

  1. Проверка версии: Убедитесь, что apt-cache policy openssl показывает версию 3.5.5-1ubuntu3.4 или выше для Ubuntu 26.04.
  2. Перезапуск сервисов: Убедитесь, что процессы, использующие OpenSSL, перезапущены. Проверьте время запуска процесса через ps -eo pid,lstart,cmd.
  3. Функциональное тестирование: Проведите тестирование QUIC-соединений, чтобы убедиться, что сервис работает корректно после обновления.
  4. Мониторинг: Наблюдайте за логами в течение нескольких часов после обновления, чтобы убедиться, что сбои не повторяются.

Если после обновления сбой продолжается, проверьте, не используются ли другие уязвимые библиотеки или не остались ли старые версии в кэше.

Вывод​


CVE-2026-18798 представляет собой серьезный риск для отказоустойчивости QUIC-сервисов в Ubuntu. Хотя уязвимость не позволяет выполнить код, она позволяет удаленному атакующему легко вызвать отказ в обслуживании.

Обновление до исправленных версий пакетов является обязательным шагом. Администраторы должны проверить свои системы, применить патчи и убедиться в корректной работе сервисов после обновления.

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


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

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


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