CVE-2026-54874 в Ubuntu: DTLS-амплификация памяти, уязвимые версии и защита

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

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


Уязвимость в механизме буферизации DTLS-записей OpenSSL позволяет удалённому атакующему вызвать чрезмерное потребление памяти на сервере, что ведёт к отказу в обслуживании. В материале разобраны технические причины ошибки, затронутые версии пакетов в дистрибутивах Ubuntu и конкретные шаги по проверке и обновлению систем.

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


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

  • Тип ошибки: CWE-405 (Asymmetric Resource Consumption / Amplification). Механизм буферизации записей для будущего epoch задерживает в памяти объём, многократно превышающий фактический размер данных.
  • 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. Высокая оценка обусловлена удалённым характером атаки и отсутствием необходимости в аутентификации.
  • Условия атаки: Удалённый доступ к DTLS-порту. Аутентификация не требуется, сложность атаки низкая.
  • Эксплуатация: Подтверждённая эксплуатация в реальных атаках не зафиксирована. Уязвимость была обнаружена и сообщена Amazon Web Services.
  • EPSS: 0,52% (процентиль 41,65%). Вероятность эксплуатации в ближайшем будущем оценивается как низкая, но риск для критичных сервисов остаётся.

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


Уязвимость затрагивает все активные и поддерживаемые версии OpenSSL, используемые в дистрибутивах Ubuntu. Пакеты openssl и связанные библиотеки (libssl3, libssl1.1, libssl1.0.0) содержат уязвимый код.

  • Ubuntu 22.04 LTS (Jammy): Пакет openssl до версии 3.0.2-0ubuntu1.29.
  • Ubuntu 24.04 LTS (Noble): Пакет openssl до версии 3.0.13-0ubuntu3.15.
  • Ubuntu 26.04 LTS (Resolute): Пакет openssl до версии 3.5.5-1ubuntu3.4.
  • Ubuntu 18.04 LTS (Bionic) и 20.04 LTS (Focal): Пакеты openssl и openssl1.0 до версий, указанных в USN-8678-1 и USN-8678-2. Для этих релизов обновления доступны через подписку Ubuntu Pro.
  • Ubuntu 14.04 LTS (Trusty) и 16.04 LTS (Xenial): Пакеты openssl до версий 1.0.1f-1ubuntu2.27+esm16 и 1.0.2g-1ubuntu4.20+esm18 соответственно. Обновления требуют Ubuntu Pro с Legacy support.

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


Причина ошибки кроется в логике обработки DTLS-записей, относящихся к будущему epoch, во время выполнения рукопожатия. В UDP-транспорте возможна пересортировка пакетов, из-за чего локальный узел может получить данные, которые формально относятся к следующему этапу шифрования, до того как сам завершит текущий переход.

OpenSSL сохраняет такие «ранние» записи в буфере, чтобы обработать их после синхронизации. Проблема в том, что при буферизации система выделяет память под весь буфер чтения, размер которого рассчитан под максимальный возможный DTLS-запись (около 16 КБ), а не под фактический объём полученных данных.

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

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


Атакующий направляет на DTLS-сервер поток небольших сфабрикованных записей, которые заявляют о принадлежности к следующему epoch. Сервер, находящийся в процессе рукопожатия, принимает эти записи и помещает их в очередь ожидания.

Каждая такая запись заставляет OpenSSL выделить в памяти буфер полного размера (16 КБ), несмотря на то, что фактический объём данных в пакете минимален. Атакующий может открывать множество параллельных ассоциаций, умножая эффект. В результате сервер потребляет гигабайты памяти, отправив при этом лишь килобайты трафика.

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

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


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

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

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


Атакующий сканирует сеть в поиске открытых DTLS-портов. Выбрав цель, он инициирует несколько DTLS-рукопожатий. Во время обмена ключами он отправляет серверу серию небольших UDP-пакетов, содержащих DTLS-записи с меткой epoch, превышающей текущую.

Сервер OpenSSL, ожидая завершения рукопожатия, начинает буферизовать эти записи. Каждая запись приводит к выделению 16 КБ памяти. Атакующий продолжает отправлять пакеты, поддерживая высокий уровень параллельных соединений.

Оперативная память сервера быстро заполняется, что приводит к срабатыванию OOM-killer или остановке сервиса. Администратор фиксирует падение производительности и недоступность DTLS-интерфейса.

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


Публичный эксплойт в виде готового скрипта или PoC в открытом доступе не зафиксирован. Уязвимость была обнаружена и сообщена разработчикам Amazon Web Services 18 мая 2026 года. Исправление разработано Matt Caswell и включено в официальные релизы OpenSSL.

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

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


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

  • Аномальное потребление памяти: Резкий рост потребления оперативной памяти процессами, использующими OpenSSL (например, nginx, haproxy, кастомные DTLS-серверы), без соответствующего роста нагрузки.
  • Сетевой трафик: Высокий объём входящего UDP-трафика на DTLS-порт с малым размером пакетов. Характерен паттерн: много мелких пакетов, направленных на порт, где ожидается DTLS.
  • События OOM: Записи в системном журнале (/var/log/syslog или journalctl) о принудительном завершении процессов из-за нехватки памяти (Out of Memory).

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


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

  • Мониторинг памяти: Настройте алерты на превышение порогового значения потребления памяти процессами, работающими с DTLS. Используйте инструменты вроде prometheus-node-exporter или netdata.
  • Анализ сетевого трафика: Если возможно, анализируйте UDP-трафик на DTLS-порты. Ищите аномалии в размере пакетов и частоте их поступления. Атака характеризуется потоком мелких пакетов во время фазы рукопожатия.
  • Системные логи: Регулярно проверяйте логи ядра и системные журналы на наличие сообщений об OOM-killer. Внезапные перезапуски DTLS-сервисов без видимой причины могут указывать на атаку.

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


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

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

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

# Проверка установленной версии пакета openssl
apt-cache policy openssl

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

Обратите внимание на строку Candidate в выводе apt-cache policy. Если версия ниже указанной в USN-8678-1 или USN-8678-2, система уязвима.

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


Единственным эффективным способом устранения уязвимости является обновление пакета openssl до исправленной версии. Используйте официальные репозитории Ubuntu.

  • Ubuntu 22.04 LTS: Обновите пакет openssl до версии 3.0.2-0ubuntu1.29 или выше.
  • Ubuntu 24.04 LTS: Обновите пакет openssl до версии 3.0.13-0ubuntu3.15 или выше.
  • Ubuntu 26.04 LTS: Обновите пакет openssl до версии 3.5.5-1ubuntu3.4 или выше.
  • Ubuntu 18.04/20.04 LTS: Подключите репозиторий Ubuntu Pro и обновите пакет openssl согласно USN-8678-1 и USN-8678-2.

Команда для обновления:

Bash:
sudo apt update
sudo apt upgrade openssl

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

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


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

  • Ограничение DTLS: Если DTLS не является критичным для вашего бизнеса, отключите его в конфигурации сервера. Используйте только TLS поверх TCP.
  • Ограничение соединений: Настройте файрвол (например, ufw или iptables) для ограничения количества одновременных UDP-соединений на DTLS-порт. Это ограничит масштабирование атаки.
  • Rate Limiting: Используйте механизмы ограничения частоты запросов (rate limiting) на уровне сетевого оборудования или балансировщика нагрузки для DTLS-трафика.
  • Мониторинг: Усиленный мониторинг потребления памяти и сетевого трафика позволит быстро обнаружить атаку и временно заблокировать IP-адреса атакующих.

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


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

  1. Проверьте версию пакета:

Bash:
apt-cache policy openssl

Убедитесь, что установленная версия соответствует или превышает версию, указанную в USN-8678-1 или USN-8678-2.

  • Проверьте статус безопасности:

Bash:
ubuntu-security-status

Команда должна не сообщать об уязвимых пакетах.

  • Перезапустите сервисы, использующие OpenSSL, и убедитесь, что они работают корректно. Проверьте логи на наличие ошибок.

Вывод​


CVE-2026-54874 представляет собой риск отказа в обслуживании для DTLS-серверов, использующих OpenSSL. Хотя атакующий не получает доступа к данным, он может полностью нарушить доступность сервиса.

Администраторам Ubuntu следует немедленно проверить версии пакета openssl и применить обновления из официальных репозиториев. Для систем, где DTLS не используется, риск минимален, но обновление всё равно рекомендуется для общей безопасности.

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


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

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


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