CVE: CVE-2026-100660
Продукт: Debian
Дата публикации: 26.09.2026
Критичность: HIGH
CVSS: 8.7 (4.0)
EPSS: 0,38%; процентиль 28,90%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-100660 затрагивает пакет netty в Debian и позволяет удалённому клиенту вызвать исчерпание памяти сервера через HTTP/3. Проблема связана с тем, что QpackEncoder хранит состояние кодирования для каждого потока без ограничений по количеству потоков, секций полей и объёму данных. В Debian проблема устранена в версиях netty 1:4.1.48-7+deb12u2, 1:4.1.48-16 и 1:4.1.48-10+deb13u1 для соответствующих релизов.
Основные характеристики
Риск состоит в удалённом отказе от службы из-за неограниченного роста памяти Java-процесса, работающего с HTTP/3 через Netty.
- Тип ошибки: CWE-770 — неограниченный рост ресурса (unbounded memory retention)
- CVSS v4.0:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X, оценка 8.7, severity HIGH
- Вектор атаки: удалённый, без авторизации, без взаимодействия с пользователем, без привилегий
- Факт эксплуатации: в предоставленных источниках не подтверждено
- EPSS: 0,375% (процентиль 28,9%)
Какие продукты и версии затронуты
В Debian уязвим пакет
netty.- Debian bookworm: версия
1:4.1.48-7+deb12u2в репозиторияхbookwormиbookworm-security
- Debian forky: версия
1:4.1.48-16в репозиторииforky
- Debian sid: версия
1:4.1.48-16в репозиторииsid
- Debian trixie: версии
1:4.1.48-10+deb13u1в репозиторияхtrixieиtrixie-security
В исходном описании CVE указано, что уязвимы версии Netty HTTP/3 codec от 4.2.0.Final до 4.2.17.Final. В Debian соответствующий пакет называется
netty, а конкретные дистрибутивные версии указаны в Debian Security Tracker.Причина уязвимости
Класс QpackEncoder в компоненте Netty HTTP/3 хранит очередь и трекер индексов динамической таблицы для каждого закодированного раздела полей, ссылающегося на QPACK dynamic table. Элементы сохраняются с ключом — QUIC stream ID, контролируемым удалённым клиентом.
Освобождение записей происходит только при получении от удалённого декодера Section Acknowledgment или Stream Cancellation instruction. Завершение HTTP/3-потока не вызывает освобождения состояния. Ограничений на количество отслеживаемых потоков, секций полей и удерживаемых байтов нет.
Это приводит к неограниченному росту памяти при последовательной отправке запросов одним клиентом без обязательных Section Acknowledgments.
Как работает атака
Удалённый HTTP/3-клиент устанавливает QUIC-соединение с сервером, работающим на Netty.
Клиент объявляет ненулевую ёмкость QPACK dynamic table и подтверждает вставку таблицы. Сервер начинает использовать динамически индексируемые заголовки ответа.
Далее клиент отправляет последовательные HTTP/3-запросы по одному QUIC-соединению, пропуская все обязательные Section Acknowledgments. Каждый запрос создаёт новые записи в QpackEncoder, которые не удаляются при завершении потока.
Состояние кодирования накапливается до тех пор, пока Java-процесс не исчерпает доступную память. Это вызывает отказ от службы: процесс останавливает обработку запросов или завершается по OOM.
Условия успешной эксплуатации
Для успешной эксплуатации достаточно доступа к HTTP/3-интерфейсу сервера.
- Сервер использует Netty с компонентом
io.netty:netty-codec-http3
- Версия Netty находится в диапазоне от 4.2.0.Final до 4.2.17.Final или соответствует уязвимым дистрибутивным версиям Debian
- Клиент может установить QUIC-соединение и отправить HTTP/3-запросы
- Не требуется авторизация, привилегии или взаимодействие с пользователем
- Не требуется обход ограничений одновременных потоков: они не применяются к накоплению состояния QpackEncoder
Возможный сценарий атаки
Администратор запускает веб-сервис на Debian с пакетом
netty из уязвимого релиза. Сервис принимает HTTP/3-трафик.Внешний клиент подключается по QUIC и отправляет запросы, используя QPACK dynamic table. Клиент не отправляет Section Acknowledgments после каждого раздела полей.
Каждый новый запрос увеличивает количество хранимых записей в QpackEncoder. Память Java-процесса растёт монотонно.
Через некоторое время процесс исчерпывает heap и перестаёт обслуживать остальные соединения. Для пользователя это выглядит как зависание или отказ от службы без ошибок в логах приложения.
Есть ли публичный эксплойт
В предоставленных источниках нет отдельного раздела с публичным эксплойтом, PoC-скриптом или подтверждённой эксплуатацией.
Описание CVE содержит техническую механику: клиент может объявить ненулевую ёмкость QPACK dynamic table, подтвердить вставку таблицы и пропустить Section Acknowledgments. Это позволяет описать поведение, которое приводит к неограниченному росту памяти.
Отсутствие сведений об эксплойте в перечисленных источниках не означает, что он не существует. Для проверки актуального статуса нужно обращаться к официальным advisory Netty и Debian Security Tracker.
Признаки эксплуатации
Специфичных индикаторов компрометации для этой уязвимости в предоставленных источниках нет.
- Рост потребления памяти Java-процесса, работающего с HTTP/3
- Увеличение количества активных QUIC-соединений или потоков без соответствующего роста нагрузки на приложение
- Ошибки
OutOfMemoryErrorв логах JVM
- Резкое снижение пропускной способности HTTP/3-интерфейса
- Рост размера heap до предела и последующее завершение процесса по OOM
Эти признаки неспецифичны: они могут появляться при других нагрузках, ошибках конфигурации или проблемах с памятью.
Как обнаружить атаку
Для обнаружения атаки можно использовать мониторинг памяти и сетевой трафик.
- Отслеживать
java -Xmxи фактическое потребление heap у процесса Netty
- Смотреть логи JVM на наличие
OutOfMemoryError: Java heap space
- Анализировать QUIC-трафик на предмет последовательных HTTP/3-запросов без Section Acknowledgments
- Проверять рост числа активных QUIC-потоков на одном соединении
- Использовать алерты при превышении порога потребления памяти за короткий промежуток времени
Такие методы не являются специфичными для CVE-2026-100660 и могут срабатывать на других причинах.
Как проверить свою версию
Проверка версии Debian:
Bash:
cat /etc/debian_version
cat /etc/os-release
Проверка установленной версии пакета
netty:
Bash:
apt-cache policy netty
dpkg-query -W -f='${Package} ${Version}\n' netty
Замените
<имя-пакета> на фактическое имя пакета, если в системе используется другой пакет с Netty HTTP/3. В Debian пакет называется netty.Сравните полученную версию с версиями из Debian Security Tracker:
1:4.1.48-7+deb12u2, 1:4.1.48-16, 1:4.1.48-10+deb13u1.Исправление
Обновите пакет
netty до исправленной версии из соответствующего Debian-репозитория.- bookworm: обновить до
1:4.1.48-7+deb12u2
- forky: обновить до
1:4.1.48-16
- sid: обновить до
1:4.1.48-16
- trixie: обновить до
1:4.1.48-10+deb13u1
Команда обновления:
Bash:
apt-get update
apt-get upgrade netty
После обновления перезапустите сервис, использующий Netty HTTP/3.
Если обновление невозможно немедленно, рассмотрите ограничение доступа к HTTP/3-интерфейсу или отключение QPACK для критических сервисов.
Временные меры защиты
Пока обновление не выполнено, можно снизить вероятность исчерпания памяти.
- Ограничить доступ к HTTP/3-порту до доверенных клиентов
- Отключить использование QPACK dynamic table, если конфигурация Netty это позволяет
- Уменьшить количество одновременных QUIC-соединений на уровне балансировщика или firewalld
- Настроить жёсткие лимиты памяти для Java-процесса и автоматическое перезапуск при OOM
- Мониторить heap в реальном времени и останавливать сервис до критического исчерпания памяти
Эти меры не устраняют уязвимость, а только снижают скорость накопления состояния.
Как проверить устранение уязвимости
Проверьте версию пакета после обновления:
Bash:
dpkg-query -W -f='${Package} ${Version}\n' netty
apt-cache policy netty
Убедитесь, что версия соответствует одной из исправленных версий из Debian Security Tracker.
Запустите сервис и проверьте, что HTTP/3-запросы обрабатываются без роста памяти. Мониторинг heap должен показывать стабильное потребление при нагрузке.
Если в логах JVM больше нет
OutOfMemoryError и память не растёт монотонно, обновление подтверждено.Вывод
CVE-2026-100660 — это уязвимость DoS уровня памяти в Netty HTTP/3, затрагивающая пакет
netty в Debian. Удалённый клиент может вызвать неограниченный рост heap через QPACK dynamic table без освобождения состояния при завершении потоков.Для администратора Debian практическая задача проста: проверить версию
netty, обновить до исправленной версии из соответствующего релиза и перезапустить сервис. До обновления полезно ограничить доступ к HTTP/3 и мониторить память процесса.Официальные источники
История обновлений статьи
- 28.09.2026 — Опубликована первая версия материала.
