CVE: CVE-2026-100662
Продукт: Debian
Дата публикации: 26.09.2026
Критичность: HIGH
CVSS: 8.7 (4.0)
EPSS: нет данных; процентиль нет данных
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В Debian-пакете netty до версии 4.2.17.Final компонент HTTP/3 codec допускает удалённому неавторизованному клиенту объявить длину литерала в QPACK instruction до Integer.MAX_VALUE и передавать меньше байтов, чем заявлено. Сервер накапливает данные в MERGE cumulator, растёт по памяти на соединение и может получить OutOfMemoryError. В Debian исправление доступно для bookworm, trixie, forky и sid.
Основные характеристики
Ошибка приводит к неуправляемому потреблению ресурсов: один удалённый клиент с установленным HTTP/3-соединением способен заставить сервер выделять всё больше памяти до отказа сервиса.
- Тип ошибки: CWE-400, uncontrolled resource consumption
- CVSS 4.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
- Условие доступа: удалённый неавторизованный peer с установленным HTTP/3-соединением к серверу Netty HTTP/3 по умолчанию
- Вектор воздействия: DoS через OutOfMemoryError и неограниченный рост heap на соединение
- Компонент: io.netty:netty-codec-http3, QpackEncoderHandler на peer-initiated unidirectional QPACK encoder stream type 0x02
- Исправление в Netty: версия 4.2.18.Final
Какие продукты и версии затронуты
В Debian затронут пакет
netty, который содержит Java-библиотеку Netty и HTTP/3 codec.- Debian bookworm: пакет netty версии
1:4.1.48-7+deb12u2в main и security, статус resolved
- Debian trixie: пакет netty версии
1:4.1.48-10+deb13u1в main и security, статус resolved
- Debian forky: пакет netty версии
1:4.1.48-16, статус resolved
- Debian sid: пакет netty версии
1:4.1.48-16, статус resolved
Вектор охватывает Netty HTTP/3 codec версии 4.2.0.Final через 4.2.17.Final. В Debian-репозиториях указаны конкретные дистрибутивные версии пакетов netty, в которых ошибка устранена.
Причина уязвимости
QpackEncoderHandler обрабатывает instruction «Insert With Literal Name» из RFC 9204 §4.3.3 и принимает заявленную длину имени и значения до Integer.MAX_VALUE, примерно 2 GiB.
В обработчике нет отдельного ограничения на длину одного литерала и нет суммарного лимита накопления данных для соединения. Существующие HTTP/3 лимиты
maxHeaderListSize, maxUnknownFramePayloadLength и DEFAULT_MAX_FIELD_SECTION_SIZE не применяются к этому обработчику.Когда клиент объявляет большую длину, но отправляет меньше байтов, ByteToMessageDecoder в режиме MERGE сохраняет частичные данные и продолжает накапливать их для этого соединения. Буфер растёт без внешнего ограничения до момента, когда сервер вынужден выделить большой byte-array или исчерпывает heap.
Как работает атака
Атака использует установленное HTTP/3-соединение к серверу Netty с включённым QPACK encoder stream.
Удалённый неавторизованный peer подключается по HTTP/3 и получает доступ к peer-initiated unidirectional QPACK encoder stream type 0x02. На этом потоке работает QpackEncoderHandler.
Клиент отправляет instruction «Insert With Literal Name» с полями Name Length или Value Length, равными очень большому числу, вплоть до Integer.MAX_VALUE. Физически в пакете может быть значительно меньше байтов, чем заявлено.
Серверный ByteToMessageDecoder не завершает декодирование и удерживает частичные данные в cumulator. При последующих пакетах или ожидании данных буфер продолжает расти. Накопление происходит на уровне соединения, а не ограничено стандартными HTTP/3 лимитами.
Рост памяти приводит к OutOfMemoryError и отказу сервиса для всех соединений, обслуживаемых этим процессом или пулом.
Условия успешной эксплуатации
Для реализации DoS нужны следующие условия:
- Установленное HTTP/3-соединение: атакующий должен иметь активное соединение с сервером Netty HTTP/3.
- Доступ к QPACK encoder stream: соединение должно использовать peer-initiated unidirectional QPACK encoder stream type 0x02.
- Отсутствие авторизации: для подключения и отправки instruction не требуется учётная запись или токен.
- Уязвимая версия Netty: сервер должен использовать netty-codec-http3 версии 4.2.0.Final через 4.2.17.Final.
- Способность отправлять QPACK instruction с большой заявленной длиной: клиент может задать Name Length или Value Length до Integer.MAX_VALUE и передавать меньше байтов, чем указано.
Возможный сценарий атаки
Сервер Debian с пакетом netty из уязвимого диапазона версий обслуживает HTTP/3-трафик. Удалённый клиент устанавливает соединение и начинает обмен QPACK-инструкциями.
Клиент отправляет «Insert With Literal Name» с очень большой длиной имени или значения. Сервер фиксирует заявленную длину, но получает меньше данных. Внутренний MERGE cumulator сохраняет буфер для этого соединения.
Повторяя instruction или отправляя дополнительные фрагменты, клиент увеличивает объём удерживаемых данных. Память процесса растёт без внешнего лимита. При достижении предела heap возникает OutOfMemoryError.
Сервер перестаёт обрабатывать новые запросы и может упасть или перейти в деградированное состояние. Это DoS-сценарий: не требуется компрометация конфигурации, авторизации или локального доступа.
Есть ли публичный эксплойт
В предоставленных источниках нет отдельного раздела с готовым эксплойтом, PoC-скриптом или подтверждённой эксплуатацией в реальных инцидентах.
Официальные ссылки указывают на advisory Netty и страницу vulncheck.com. В NVD-описании прямо указано, что ошибка исправлена в 4.2.18.Final. Это означает, что техническое описание механизма доступно, но конкретный рабочий payload или подтверждённые случаи эксплуатации в предоставленных данных не раскрыты.
Отсутствие сведений о PoC в пакете доказательств не равнозначно отсутствию эксплойта. Для проверки актуального статуса нужно смотреть advisory Netty и дистрибуторские записи.
Признаки эксплуатации
Специфичных IOC для этой ошибки в предоставленных источниках нет.
Можно использовать общие точки контроля, которые не являются подтверждёнными признаками именно CVE-2026-100662:
- Рост heap Java-процесса: увеличение потребления памяти процессом Netty/Java без соответствующего роста нагрузки.
- Высокий процент GC: частые garbage collection и рост old generation у процесса, обслуживающего HTTP/3.
- Out-of-memory события в логах: сообщения
OutOfMemoryErrorилиGC overhead limit exceeded.
- Много длительных HTTP/3-соединений: активные соединения без запросов или с малым трафиком.
- Рост размера буферов декодера: если мониторинг включает метрики Netty, можно наблюдать рост pending buffers на соединениях.
Эти признаки неспецифичны и могут появляться при других проблемах памяти, сетевых аномалиях или неправильной настройке Java.
Как обнаружить атаку
Для обнаружения используют мониторинг процесса Netty и системные метрики.
- Java heap: отслеживать
heap used,old genи GC через JMX, Prometheus или встроенные инструменты Java.
- Системная память: рост RSS процесса netty или приложения на базе Netty.
- Логи: поиск
OutOfMemoryError,GC overhead limit exceeded, ошибок декодирования HTTP/3.
- Сетевые метрики: количество активных HTTP/3-соединений, размер pending buffers в Netty, если доступны.
- Проверка версии пакета: убедиться, что установлен исправленный netty из Debian-security или main-репозитория.
Конкретных сигнатур QPACK-инструкции с большой длиной нет в предоставленных данных, поэтому детекция опирается на последствия: рост памяти и ошибки heap.
Как проверить свою версию
Проверка версии Debian и пакета netty выполняется командами из пакета доказательств. Замените
<имя-пакета> на netty.
Bash:
cat /etc/debian_version
Bash:
cat /etc/os-release
Bash:
apt-cache policy netty
Bash:
dpkg-query -W -f='${Package} ${Version}\n' netty
Для Debian bookworm исправленная версия в репозиториях:
1:4.1.48-7+deb12u2.Для trixie:
1:4.1.48-10+deb13u1.Для forky и sid:
1:4.1.48-16.Если команда показывает версию ниже указанных, система может использовать уязвимый диапазон Netty 4.2.0.Final через 4.2.17.Final.
Исправление
Исправление в Debian выполняется обновлением пакета netty до версий из security или main-репозитория.
- Debian bookworm: установить
nettyверсии1:4.1.48-7+deb12u2из bookworm-security или bookworm.
- Debian trixie: установить
nettyверсии1:4.1.48-10+deb13u1из trixie-security или trixie.
- Debian forky: установить
nettyверсии1:4.1.48-16из forky.
- Debian sid: установить
nettyверсии1:4.1.48-16из sid.
Обновление выполняется стандартным пакетным менеджером Debian:
Bash:
apt update
apt upgrade netty
После обновления нужно проверить версию пакета и перезапустить сервисы, использующие Netty HTTP/3, если они запущены как отдельные процессы.
Временные меры защиты
Пока нет подтверждённых конкретных обходов в предоставленных источниках. Ниже — общие меры снижения риска.
- Ограничить доступ к HTTP/3: закрыть порт или прокси-фильтр для HTTP/3, если он не нужен.
- Использовать балансировщик с лимитами: ограничивать размер запросов и длительность соединений на уровне сетевой инфраструктуры.
- Мониторить heap Java: настроить алерты по росту памяти процесса Netty.
- Ограничить количество одновременных соединений: снизить риск накопления буферов на одном процессе.
- Перевести критичные сервисы на HTTP/2 или HTTP/1.1: если поддержка HTTP/3 не обязательна.
Эти меры не устраняют уязвимость, а снижают вероятность или влияние DoS до обновления пакета.
Как проверить устранение уязвимости
После обновления нужно подтвердить, что установлен исправленный пакет и сервис перезапущен.
Bash:
dpkg-query -W -f='${Package} ${Version}\n' netty
Проверить, что версия соответствует одной из исправленных версий для вашей Debian-ветки:
- bookworm:
1:4.1.48-7+deb12u2
- trixie:
1:4.1.48-10+deb13u1
- forky:
1:4.1.48-16
- sid:
1:4.1.48-16
Проверить статус сервиса:
Bash:
systemctl status netty
Если сервис не называется netty, проверить процесс приложения на базе Netty и его логи после перезапуска.
Для дополнительной проверки можно запустить
apt-cache policy netty и убедиться, что текущая версия совпадает с версией из security-репозитория.Вывод
CVE-2026-100662 — DoS-уязвимость в Netty HTTP/3 codec, связанная с неограниченным ростом буфера QPACK encoder stream. В Debian она затрагивает пакет netty до исправленных версий для bookworm, trixie, forky и sid.
Ключевой риск — удалённый неавторизованный клиент может вызвать OutOfMemoryError через объявление большой длины литерала и передачу меньшего количества байтов. Исправление доступно в дистрибутивных версиях netty из security-репозиторий Debian.
Приоритет — обновление пакета netty, проверка версий на серверах с HTTP/3 и настройка мониторинга Java heap до завершения миграции.
Официальные источники
История обновлений статьи
- 28.09.2026 — Опубликована первая версия материала.
- 28.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
