CVE-2021-21295: Possible request smuggling in HTTP/2 due missing validation
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 29/100)
- В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
- Вероятность эксплуатации в ближайшие 30 дней: 18,8% (FIRST EPSS); выше, чем у 97,2% записей.
- Может быть вызвана любым, у кого есть доступ через интернет. Учётная запись или пароль не требуются. Действия пользователя не требуются. Требуются особые условия, например определённое время или конфигурация.
- По данным CISA атаку можно автоматизировать: цели находятся массовым сканированием.
- Исправленная версия: netty io.netty:netty-codec-http2 4.1.60.Final.
- Упоминается в национальных бюллетенях кибербезопасности Турции (siberguvenlik.gov.tr): 2.
Пока низкий приоритет. Обновитесь до netty io.netty:netty-codec-http2 4.1.60.Final или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
Netty is an open-source, asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. In Netty (io.netty:netty-codec-http2) before version 4.1.60.Final there is a vulnerability that enables request smuggling. If a Content-Length header is present in the original HTTP/2 request, the field is not validated by `Http2MultiplexHandler` as it is propagated up. This is fine as long as the request is not proxied through as HTTP/1.1. If the request comes in as an HTTP/2 stream, gets converted into the HTTP/1.1 domain objects (`HttpRequest`, `HttpContent`, etc.) via `Http2StreamFrameToHttpObjectCodec `and then sent up to the child channel's pipeline and proxied through a remote peer as HTTP/1.1 this may result in request smuggling. In a proxy case, users may assume the content-length is validated somehow, which is not the case. If the request is forwarded to a backend channel that is a HTTP/1.1 connection, the Content-Length now has meaning and needs to be checked. An attacker can smuggle requests inside the body as it gets downgraded from HTTP/2 to HTTP/1.1. For an example attack refer to the linked GitHub Advisory. Users are only affected if all of this is true: `HTTP2MultiplexCodec` or `Http2FrameCodec` is used, `Http2StreamFrameToHttpObjectCodec` is used to convert to HTTP/1.1 objects, and these HTTP/1.1 objects are forwarded to another remote peer. This has been patched in 4.1.60.Final As a workaround, the user can do the validation by themselves by implementing a custom `ChannelInboundHandler` that is put in the `ChannelPipeline` behind `Http2StreamFrameToHttpObjectCodec`.
- Опубликовано
- 9 мар. 2021 г.
- Обновлено
- 8 окт. 2026 г.
- EPSS
- 18,8 % · 97-й процентиль
- CWE
- CWE-444
Инструменты для отчёта
Оценка срочности
29
Наблюдать
Пока низкий приоритет.
- CVSS
- 23 / 40 · 5.9 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 6 / 30 · 18,8 %
Решение CISA SSVC
- Эксплуатация
- нет
- Автоматизируемо
- да
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- 5,9
- CNA · GitHub_M
- 5,9
- совпадают
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Публичного эксплойта нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
У вас WordPress? Проверьте сайт бесплатно в WP Lens
Анализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
| Вендор | Продукт | CPE |
|---|---|---|
| netty | netty | cpe:2.3:a:netty:netty |
| netapp | oncommand api services | cpe:2.3:a:netapp:oncommand_api_services |
| netapp | oncommand workflow automation | cpe:2.3:a:netapp:oncommand_workflow_automation |
| debian | debian linux | cpe:2.3:o:debian:debian_linux |
| quarkus | quarkus | cpe:2.3:a:quarkus:quarkus |
| apache | kudu | cpe:2.3:a:apache:kudu |
| apache | zookeeper | cpe:2.3:a:apache:zookeeper |
| oracle | communications cloud native core policy | cpe:2.3:a:oracle:communications_cloud_native_core_policy |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- apache kuduдо 1.16.0
- apache zookeeper3.5.9
- debian debian linux10.0
- netapp oncommand api servicesвсе версии
- netapp oncommand workflow automationвсе версии
- netty nettyдо 4.1.60
- oracle communications cloud native core policy1.14.0
- quarkus quarkusдо 1.13.7 включительно
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
netty io.netty:netty-codec-http2
- < 4.1.60.Finalзатронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:10 | netty | до 1:4.1.33-1+deb10u2 | 1:4.1.33-1+deb10u2 |
| Debian:12 | netty | до 1:4.1.48-3 | 1:4.1.48-3 |
| Maven | io.netty:netty | с 0 | — |
| Maven | io.netty:netty-codec-http2 | с 4.0.0 · до 4.1.60.Final | 4.1.60.Final |
| Maven | org.jboss.netty:netty | с 0 | — |
| openSUSE:Leap 15.2 | netty | до 4.1.13-lp152.3.3.1 | 4.1.13-lp152.3.3.1 |
| openSUSE:Leap 15.3 | netty | до 4.1.75-150200.4.6.2 | 4.1.75-150200.4.6.2 |
| openSUSE:Tumbleweed | netty | до 4.1.60-1.4 | 4.1.60-1.4 |
| Red Hat:a_mq_clients:2::el7 | python-qpid-proton | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | python-qpid-proton-docs | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-c | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-c-devel | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-c-docs | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-cpp | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-cpp-devel | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-cpp-docs | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-debuginfo | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | qpid-proton-tests | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el7 | rubygem-qpid_proton | до 0:0.33.0-6.el7_9 | 0:0.33.0-6.el7_9 |
| Red Hat:a_mq_clients:2::el8 | python-qpid-proton-docs | до 0:0.33.0-8.el8 | 0:0.33.0-8.el8 |
| Red Hat:a_mq_clients:2::el8 | python3-qpid-proton | до 0:0.33.0-8.el8 | 0:0.33.0-8.el8 |
| Red Hat:a_mq_clients:2::el8 | python3-qpid-proton-debuginfo | до 0:0.33.0-8.el8 | 0:0.33.0-8.el8 |
| Red Hat:a_mq_clients:2::el8 | qpid-proton | до 0:0.33.0-8.el8 | 0:0.33.0-8.el8 |
+96
Тот же продукт
netty: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-47691Netty has Insufficient Bailiwick Validation for NS Records40В плане
- CVE-2026-45674Netty Vulnerable to DNS Cache Poisoning via Missing Bailiwick Checks in CNAME Records40В плане
- CVE-2019-20445HttpObjectDecoder.java in Netty before 4.1.44 allows a Content-Length header to be accompanied by a second Content-Length header, or by a Tr40В плане
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2020-116127 апр. 2020 г. · The ZlibDecoders in Netty 4.1.x before 4.1.46 allow for unbounded memory allocation while decoding a ZlibEncoded byte stream.33Наблюдать
- ← РаньшеCVE-2021-212908 февр. 2021 г. · Local Information Disclosure Vulnerability in Netty on Unix-Like systems due temporary files23Наблюдать
- Позже →CVE-2021-2140930 мар. 2021 г. · Possible request smuggling in HTTP/2 due missing validation of content-length24Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| netty io.netty:netty-codec-http2 | 4.1.60.Final · description | Вендор (CNA) |
| debian:netty | 1:4.1.48-3 · Debian:12 | Реестр пакетов (OSV) |
| Maven:io.netty:netty-codec-http2 | 4.1.60.Final | Реестр пакетов (OSV) |
| opensuse:netty | 4.1.75-150200.4.6.2 · openSUSE:Leap 15.3 | Реестр пакетов (OSV) |
| red hat:python-qpid-proton | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:python-qpid-proton-docs | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-c | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-c-devel | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-c-docs | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-cpp | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-cpp-devel | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-cpp-docs | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-debuginfo | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:qpid-proton-tests | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| red hat:rubygem-qpid_proton | 0:0.33.0-6.el7_9 · Red Hat:a_mq_clients:2::el7 | Реестр пакетов (OSV) |
| rocky linux:libdb | 0:5.3.28-42.el8_4 · Rocky Linux:8 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Национальное уведомление (Управление кибербезопасности Турции / USOM)
Официальные уведомления, ссылающиеся на эту запись; рекомендации — на странице ведомства.
- TR-21-0949 · 25 нояб. 2021 г.(IBM Güvenlik Bülteni Yayınladı)
- TR-21-0557 · 7 июл. 2021 г.(IBM Güvenlik Bülteni Yayınladı)
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Требуются особые условия, например определённое время или конфигурация.
В случае успеха
- Конфиденциальность
- нет
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- нет
- Вектор атаки
- Сеть
- Сложность атаки
- Высокая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Нет
- Влияние на целостность
- Высокое
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-444 · Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')Вектор CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
nvd-primary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
Техники ATT&CK
—
Журнал изменений
- Эксплуатация SSVC— → none
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 19)Свернуть
- github.com/netty/netty/commit/89c241e3b1795ff257af4ad6eadc616cb2fb3dc4
- github.com/netty/netty/security/advisories/GHSA-wm47-8v5p-wjpj
- lists.apache.org/thread.html/r02e467123d45006a1dda20a38349e9c74c3a4b53e2e07be0939ecb3f%40%3Cdev.ranger.apache.org%3E
- lists.apache.org/thread.html/r040a5e4d9cca2f98354b58a70b27099672276f66995c4e2e39545d0b%40%3Cissues.hbase.apache.org%3E
- lists.apache.org/thread.html/r04a3e0d9f53421fb946c60cc54762b7151dc692eb4e39970a7579052%40%3Ccommits.servicecomb.apache.org%3E
- lists.apache.org/thread.html/r0b09f3e31e004fe583f677f7afa46bd30110904576c13c5ac818ac2c%40%3Cissues.flink.apache.org%3E
- lists.apache.org/thread.html/r15f66ada9a5faf4bac69d9e7c4521cedfefa62df9509881603791969%40%3Cjira.kafka.apache.org%3E
- lists.apache.org/thread.html/r16c4b55ac82be72f28adad4f8061477e5f978199d5725691dcc82c24%40%3Ccommits.servicecomb.apache.org%3E
- lists.apache.org/thread.html/r1908a34b9cc7120e5c19968a116ddbcffea5e9deb76c2be4fa461904%40%3Cdev.zookeeper.apache.org%3E
- lists.apache.org/thread.html/r1bca0b81193b74a451fc6d687ab58ef3a1f5ec40f6c61561d8dd9509%40%3Cissues.zookeeper.apache.org%3E
- lists.apache.org/thread.html/r22adb45fe902aeafcd0a1c4db13984224a667676c323c66db3af38a1%40%3Ccommits.zookeeper.apache.org%3E
- lists.apache.org/thread.html/r22b2f34447d71c9a0ad9079b7860323d5584fb9b40eb42668c21eaf1%40%3Cissues.hbase.apache.org%3E
- lists.apache.org/thread.html/r268850f26639ebe249356ed6d8edb54ee8943be6f200f770784fb190%40%3Cissues.hbase.apache.org%3E
- lists.apache.org/thread.html/r27b7e5a588ec826b15f38c40be500c50073400019ce7b8adfd07fece%40%3Cissues.hbase.apache.org%3E
- lists.apache.org/thread.html/r2936730ef0a06e724b96539bc7eacfcd3628987c16b1b99c790e7b87%40%3Cissues.zookeeper.apache.org%3E
- lists.apache.org/thread.html/r2e93ce23e04c3f0a61e987d1111d0695cb668ac4ec4edbf237bd3e80%40%3Ccommits.servicecomb.apache.org%3E
- lists.apache.org/thread.html/r312ce5bd3c6bf08c138349b507b6f1c25fe9cf40b6f2b0014c9d12b1%40%3Cnotifications.zookeeper.apache.org%3E
- lists.apache.org/thread.html/r32b0b640ad2be3b858f0af51c68a7d5c5a66a462c8bbb93699825cd3%40%3Cissues.zookeeper.apache.org%3E
- lists.apache.org/thread.html/r33eb06b05afbc7df28d31055cae0cb3fd36cab808c884bf6d680bea5%40%3Cdev.zookeeper.apache.org%3E
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.