
Pacchetto di divulgazione e PoC per CVE-2026-86350, un header mix-up di richieste HTTP/2 non autenticate (CWE-444) in Apache Tomcat 9.0.121, con riproduzione in laboratorio e guida alla patch.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-86350
Apache Tomcat 9.0.121 — Apache Software Foundation
Interpretazione incoerente delle richieste HTTP/2 (vulnerabilità di 'HTTP Request/Response smuggling') in Apache Tomcat causata da una regressione nella correzione per CVE-2026-41293 può causare un mix-up degli header di richiesta.
| CVE | CVE-2026-86350 · CVE.org |
| CWE | CWE-444 |
| CVSS | Critico: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| Prodotto | Apache Tomcat |
| Affette | tutte le versioni fino alla 9.0.121 (inclusa) |
| Corrette | 9.0.122 e successive |
| Auth | non autenticato (vedi source map) |
| Licenza | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 · pacchetto di divulgazione vendor/client, non uno scanner |
java/org/apache/coyote/http2/HpackDecoder.java e HPackHuffman.java. La patch 9.0.122 commit 5adadc4e / 11.0.26 192bc749 ripristina la validazione anticipata.
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 / GOAWAYDopo un campo HTTP/2 non valido sullo stream 1, lo stream 2 non è un 200 pulito (GOAWAY, RST o mix-up del marker).
Fai questo per primo: Aggiorna Apache Tomcat alla 9.0.122 o successiva.
Verifica dopo l'aggiornamento
CVE-2026-86350-Abraxas-Labs.py contro la build corretta: il witness mappato non deve comparire.Se non puoi aggiornare immediatamente
Target solo http://127.0.0.1:8088 (o il loopback a cui ti sei associato). Non puntare questo script verso internet.
python3 CVE-2026-86350-Abraxas-Labs.py
Il successo è il witness sopra nel corpo della risposta. Un generico HTML 200 non lo è.
Stack loopback usato per la riproduzione. Immagini ufficiali a meno che un Dockerfile in questa cartella non venga compilato dal sorgente.
cd lab
docker compose up --force-recreate
Associa l'albero del prodotto vulnerabile accanto a Compose se lo YAML monta una directory locale (zip del plugin / tag del sorgente dalla tabella delle versioni). Non pubblicare nulla tranne 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.
Questo pacchetto di divulgazione è concesso in licenza sotto la GNU Affero General Public License v3.0. Vedi LICENSE.
Questo pacchetto è destinato al vendor, al proprietario del sito e ai lab autorizzati. Lo script comunica con 127.0.0.1. Usarlo contro sistemi che non possiedi non è autorizzato da Abraxas Labs. Nessuna garanzia.