
Disclosure-Paket und PoC für CVE-2026-86350, eine nicht authentifizierte HTTP/2-Request-Header-Verwechslung (CWE-444) in Apache Tomcat 9.0.121, mit Lab-Reproduktion und Patch-Anleitung.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-86350
Apache Tomcat 9.0.121 — Apache Software Foundation
Inkonsistente Interpretation von HTTP/2-Anfragen („HTTP Request/Response Smuggling“) – Schwachstelle in Apache Tomcat, verursacht durch eine Regression im Fix für CVE-2026-41293, kann zu einer Vermischung von Request-Headern führen.
| CVE | CVE-2026-86350 · CVE.org |
| CWE | CWE-444 |
| CVSS | Kritisch: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| Produkt | Apache Tomcat |
| Betroffen | alle Versionen bis einschließlich 9.0.121 |
| Gepatcht | 9.0.122 und später |
| Auth | unauthentifiziert (siehe Source Map) |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1 · Vendor/Client-Disclosure-Paket, kein Scanner |
java/org/apache/coyote/http2/HpackDecoder.java und HPackHuffman.java. Patch 9.0.122 Commit 5adadc4e / 11.0.26 192bc749 macht die frühe Validierung rückgängig.
GET/header.jspHTTP/2 Prior-Knowledge Preface zu :8080 UpgradeProtocol Http2ProtocolHEADERS Stream 1: ungültiger Feldwert mit abschließendem Leerzeichen, dann x-lab-witnessHpackDecoder.readHpackString wirft IllegalArgumentException mitten im Blockdynamische Tabelle ohne den Marker; Stream 2 indexiert den MarkerDecoder-Mix-up oder COMPRESSION_ERROR / GOAWAYNach einem ungültigen HTTP/2-Feld auf Stream 1 ist Stream 2 kein sauberes 200 (GOAWAY, RST oder Marker-Mix-up).
Zuerst dies tun: Aktualisieren Sie Apache Tomcat auf 9.0.122 oder neuer.
Nach dem Upgrade verifizieren
CVE-2026-86350-Abraxas-Labs.py erneut gegen den gepatchten Build aus: der zugeordnete Nachweis darf nicht auftreten.Wenn Sie nicht sofort aktualisieren können
Zielen Sie ausschließlich auf http://127.0.0.1:8088 (oder das Loopback, an das Sie gebunden haben). Richten Sie dieses Skript nicht auf das Internet.
python3 CVE-2026-86350-Abraxas-Labs.py
Erfolg ist der Nachweis oben im Response-Body. Generisches 200-HTML ist es nicht.
Loopback-Stack zur Reproduktion. Offizielle Images, sofern nicht ein Dockerfile in diesem Ordner aus dem Quellcode baut.
cd lab
docker compose up --force-recreate
Binden Sie den verwundbaren Produkt-Tree neben Compose ein, wenn das YAML ein lokales Verzeichnis mountet (Plugin-Zip / Source-Tag aus der Versionstabelle). Veröffentlichen Sie nichts außer 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.
Dieses Disclosure-Paket ist unter der GNU Affero General Public License v3.0 lizenziert. Siehe LICENSE.
Dieses Paket ist für den Vendor, den Site-Betreiber und lizenzierte Labs. Das Skript kommuniziert mit 127.0.0.1. Die Verwendung gegen Systeme, die Ihnen nicht gehören, ist von Abraxas Labs nicht autorisiert. Keine Gewährleistung.