
Пакет раскрытия и PoC для CVE-2026-86350 — неаутентифицированная путаница заголовков HTTP/2-запросов (CWE-444) в Apache Tomcat 9.0.121, с воспроизведением в лабораторных условиях и рекомендациями по исправлению.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-86350
Apache Tomcat 9.0.121 — Apache Software Foundation
Несогласованная интерпретация HTTP/2-запросов (уязвимость «HTTP Request/Response smuggling») в Apache Tomcat, вызванная регрессией в исправлении для CVE-2026-41293, может приводить к перепутыванию заголовков запроса.
| CVE | CVE-2026-86350 · CVE.org |
| CWE | CWE-444 |
| CVSS | Critical: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| Продукт | Apache Tomcat |
| Затронуты | все версии вплоть до 9.0.121 (включительно) |
| Исправлено | 9.0.122 и новее |
| Аутентификация | не требуется (см. карту исходников) |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1 · пакет для раскрытия вендору/клиенту, не сканер |
java/org/apache/coyote/http2/HpackDecoder.java и HPackHuffman.java. Патч 9.0.122 коммит 5adadc4e / 11.0.26 192bc749 откатывает раннюю валидацию.
GET/header.jspHTTP/2 prior-knowledge preface to :8080 UpgradeProtocol Http2ProtocolHEADERS stream 1: invalid field value trailing space then x-lab-witnessHpackDecoder.readHpackString throws IllegalArgumentException mid-blockdynamic table missing the marker; stream 2 indexes the markerdecoder mix-up or COMPRESSION_ERROR / GOAWAYПосле недопустимого HTTP/2-поля в потоке 1 поток 2 не является чистым 200 (GOAWAY, RST или перепутывание маркера).
Сделайте это в первую очередь: обновите Apache Tomcat до 9.0.122 или новее.
Проверка после обновления
CVE-2026-86350-Abraxas-Labs.py против исправленной сборки: отображённое свидетельство не должно появляться.Если вы не можете обновиться немедленно
Цель — только http://127.0.0.1:8088 (или тот loopback, который вы привязали). Не направляйте этот скрипт в интернет.
python3 CVE-2026-86350-Abraxas-Labs.py
Успех — это свидетельство, описанное выше, в теле ответа. Обычный HTML с кодом 200 — это не оно.
Loopback-стек, использованный для воспроизведения. Официальные образы, если только Dockerfile в этой папке не собирает из исходников.
cd lab
docker compose up --force-recreate
Привяжите дерево уязвимого продукта рядом с Compose, если YAML монтирует локальный каталог (zip плагина / тег исходников из таблицы версий). Не публикуйте ничего, кроме 127.0.0.1.
# CVE-2026-86350
CWE: CWE-444
CVSS: Critical 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N (CISA-ADP). Apache: Important.
## Description
A regression in the CVE-2026-41293 HTTP/2 header-validation refactor can mix request headers. Invalid HPACK fields abort decode so later fields never enter the dynamic table; the next stream on the connection then interprets indexes against a desynced table.
## Product
Apache Tomcat 9.0.121 (fixed in 9.0.122; also 10.1.60 and 11.0.26). Lab oracle is HPACK desync, not RCE.
Этот пакет раскрытия лицензирован под GNU Affero General Public License v3.0. См. LICENSE.
Этот пакет предназначен для вендора, владельца сайта и лицензированных лабораторий. Скрипт обращается к 127.0.0.1. Использование его против систем, которыми вы не владеете, не авторизовано Abraxas Labs. Без гарантий.