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 убедитесь, что уязвимость устранена:- Проверьте версию пакета:
Bash:
apt-cache policy openssl
Убедитесь, что установленная версия соответствует или превышает версию, указанную в USN-8678-1 или USN-8678-2.
- Проверьте статус безопасности:
Bash:
ubuntu-security-status
Команда должна не сообщать об уязвимых пакетах.
- Перезапустите сервисы, использующие OpenSSL, и убедитесь, что они работают корректно. Проверьте логи на наличие ошибок.
Вывод
CVE-2026-54874 представляет собой риск отказа в обслуживании для DTLS-серверов, использующих OpenSSL. Хотя атакующий не получает доступа к данным, он может полностью нарушить доступность сервиса.
Администраторам Ubuntu следует немедленно проверить версии пакета
openssl и применить обновления из официальных репозиториев. Для систем, где DTLS не используется, риск минимален, но обновление всё равно рекомендуется для общей безопасности.Официальные источники
История обновлений статьи
- 28.08.2026 — Опубликована первая версия материала.
- 29.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
