CVE: CVE-2026-100660
Продукт: Debian
Дата публикации: 26.09.2026
Критичность: HIGH
CVSS: 8.7 (4.0)
EPSS: нет данных; процентиль нет данных
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Уязвимость CVE-2026-100660 затрагивает HTTP/3-кодек Netty в Debian. Проблема позволяет удалённому клиенту вызывать необратимый рост памяти на сервере, использующем netty-codec-http3 версии 4.2.0.Final до 4.2.17.Final. В Debian пакет netty был исправлен в release bookworm, forky, sid и trixie.
Основные характеристики
Риск состоит в удалённом отказе от службы из-за неограниченного накопления состояния QPACK-энкодера на стороне сервера HTTP/3.
- Тип ошибки: CWE-770 — Memory Exhaustion
- 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
- CVSS score: 8.7 (HIGH)
- Вектор атаки: удалённый, без авторизации, без взаимодействия пользователя
- Факт эксплуатации: в источниках не подтверждено
- EPSS: нет данных
Какие продукты и версии затронуты
Затронут пакет
netty в Debian.- Debian bookworm: версия
1:4.1.48-7+deb12u2в репозиторияхbookwormиbookworm-security, статус resolved, urgency unimportant
- Debian forky: версия
1:4.1.48-16в репозиторииforky, статус resolved, urgency unimportant
- Debian sid: версия
1:4.1.48-16в репозиторииsid, статус resolved, urgency unimportant
- Debian trixie: версия
1:4.1.48-10+deb13u1в репозиторияхtrixieиtrixie-security, статус resolved, urgency unimportant
Причина уязвимости
QpackEncoder в netty-codec-http3 хранит очередь и динамический индекс таблицы для каждого закодированного секционного поля, ссылающегося на QPACK dynamic table.
Эти записи ключатся по QUIC stream ID, контролируемом удалённым клиентом. Освобождение происходит только при получении Section Acknowledgment или Stream Cancellation от удалённого декодера, но не при завершении HTTP/3-потока.
Нет ограничений на количество отслеживаемых потоков, секционных полей и удерживаемых байтов. Это приводит к неограниченному росту кучи Java-процесса, если клиент не отправляет обязательные подтверждения.
Как работает атака
Удалённый HTTP/3-клиент подключается к серверу через QUIC.
Клиент объявляет ненулевую ёмкость QPACK dynamic table и подтверждает вставку таблицы, чтобы сервер переиспользовал динамически индексируемую заголовок ответа.
Дальше клиент последовательно отправляет запросы по одному QUIC-соединению, не отправляя Section Acknowledgment. Каждый новый поток создаёт новое состояние QpackEncoder, которое не освобождается при завершении HTTP/3-потока.
Поток данных: QUIC stream ID → ключ в QpackEncoder → удержание очереди и index tracker → рост heap → исчерпание памяти сервера.
Условия успешной эксплуатации
Для успешной эксплуатации нужны:
- Сервер с HTTP/3: должен использовать netty-codec-http3 версии 4.2.0.Final до 4.2.17.Final
- Доступ к QUIC: удалённому клиенту нужен сетевой доступ к порту или сервису, принимающему QUIC/HTTP/3
- Отсутствие авторизации: атака не требует учётных данных
- Нестабильность памяти: сервер должен иметь ограниченную память Java-процесса, чтобы рост heap привёл к отказу от службы
Возможный сценарий атаки
Сценарий описывает последовательность действий удалённого клиента.
- Клиент устанавливает QUIC-соединение с HTTP/3-сервером Debian.
- Клиент объявляет QPACK dynamic-table capacity и подтверждает вставку таблицы.
- Сервер начинает использовать динамические индексы для заголовков ответа.
- Клиент отправляет первый запрос, создавая поток QUIC.
- Сервер сохраняет состояние QpackEncoder для этого потока.
- Клиент завершает HTTP/3-поток, но не отправляет Section Acknowledgment.
- Состояние остаётся в памяти сервера.
- Клиент повторяет шаги 4–7 последовательно по одному QUIC-соединению.
- Куча Java-процесса растёт с каждым новым потоком.
- При исчерпании памяти сервис перестаёт обрабатывать запросы.
Есть ли публичный эксплойт
В предоставленных источниках нет отдельного технического описания публичного эксплойта, PoC или подтверждённой эксплуатации.
Отсутствие сведений не означает, что эксплойт не существует. В официальных данных только указано, что проблема исправлена в netty 4.2.18.Final и что механизм позволяет удалённому клиенту вызывать DoS через HTTP/3-соединение.
Признаки эксплуатации
Специфичных IOC для CVE-2026-100660 в источниках не подтверждено.
Ниже приведены общие, неспецифичные точки контроля:
- Рост памяти Java-процесса Netty на сервере с HTTP/3
- Высокое количество одновременных QUIC-соединений или HTTP/3-запросов от одного IP
- Отсутствие Section Acknowledgment в трафике QPACK, если доступен анализ протокола
- Ошибки OutOfMemoryError в логах Java-процесса Netty
Как обнаружить атаку
Для обнаружения атаки можно использовать:
- Мониторинг памяти: отслеживать рост heap у процесса Netty на сервере с HTTP/3
- Сетевой анализ: фиксировать большое количество QUIC-соединений или HTTP/3-запросов от одного источника
- Логи Java: искать OutOfMemoryError, GC pressure и сообщения о нехватке памяти в процессе Netty
- Проверка версий: убедиться, что установлен netty из исправленного репозитория Debian
Как проверить свою версию
Для проверки версии пакета
netty в Debian используйте:
Bash:
cat /etc/debian_version
Bash:
apt-cache policy <имя-пакета>
Замените
<имя-пакета> на имя проверяемого пакета, например netty.
Bash:
dpkg-query -W -f='${Package} ${Version}\n' <имя-пакета>
Сравните полученную версию с исправленными версиями из Debian Security Tracker: 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.Исправление
Исправление в Debian выполняется обновлением пакета
netty до версий из security-repositories.- Debian bookworm: обновить до
1:4.1.48-7+deb12u2
- Debian forky: обновить до
1:4.1.48-16
- Debian sid: обновить до
1:4.1.48-16
- Debian trixie: обновить до
1:4.1.48-10+deb13u1
После обновления проверьте, что сервис Netty перезапущен и использует новый пакет.
Временные меры защиты
Пока обновление не выполнено, можно снизить риск:
- Ограничить доступ к HTTP/3: отключить QUIC/HTTP/3 на уровне сетевого фильтра или reverse proxy, если это допустимо бизнесом
- Ограничить количество одновременных потоков: настроить лимиты в Netty или на уровне приложения, если конфигурация позволяет
- Мониторинг памяти: включить алерты на рост heap и OutOfMemoryError для быстрого обнаружения атаки
- Сократить время жизни соединений: использовать таймауты QUIC-соединений, чтобы уменьшить количество одновременно удерживаемых потоков
Как проверить устранение уязвимости
После обновления проверьте:
Bash:
dpkg-query -W -f='${Package} ${Version}\n' netty
Убедитесь, что версия соответствует исправленной версии из Debian Security Tracker.
Проверьте статус сервиса Netty и перезапустите его, если это необходимо.
После обновления можно выполнить повторную проверку памяти под нагрузкой HTTP/3-запросов, чтобы убедиться, что рост heap ограничен.
Вывод
CVE-2026-100660 — удалённый DoS через неограниченное удержание состояния QPACK в netty-codec-http3. В Debian проблема исправлена в release bookworm, forky, sid и trixie.
Главный риск возникает на серверах с HTTP/3, использующих netty версии 4.2.0.Final до 4.2.17.Final. Обновление пакета
netty до версий из security-repositories устраняет проблему. До обновления рекомендуется ограничить доступ к QUIC и мониторить память Java-процесса.Официальные источники
История обновлений статьи
- 28.09.2026 — Опубликована первая версия материала.
- 29.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
