
Pacote de divulgação e PoC para CVE-2026-86350, uma confusão de cabeçalhos de requisição HTTP/2 não autenticada (CWE-444) no Apache Tomcat 9.0.121, com reprodução em laboratório e orientação de patch.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-86350
Apache Tomcat 9.0.121 — Apache Software Foundation
Interpretação inconsistente de requisições HTTP/2 (vulnerabilidade de 'HTTP Request/Response smuggling') no Apache Tomcat, causada por uma regressão na correção da CVE-2026-41293, pode provocar mistura de cabeçalhos de requisição.
| CVE | CVE-2026-86350 · CVE.org |
| CWE | CWE-444 |
| CVSS | Crítico: 9.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| Produto | Apache Tomcat |
| Afetado | todas as versões até 9.0.121 (inclusive) |
| Corrigido | 9.0.122 e posteriores |
| Autenticação | não autenticado (ver mapa de origem) |
| Licença | GNU Affero GPL v3.0 |
| Lab | apenas 127.0.0.1 · pacote de divulgação para fornecedor/cliente, não é um scanner |
java/org/apache/coyote/http2/HpackDecoder.java e HPackHuffman.java. O patch 9.0.122 commit 5adadc4e / 11.0.26 192bc749 reverte a validação antecipada.
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 / GOAWAYApós campo HTTP/2 inválido no stream 1, o stream 2 não é um 200 limpo (GOAWAY, RST ou mistura de marcador).
Faça isto primeiro: Atualize o Apache Tomcat para 9.0.122 ou mais recente.
Verifique após a atualização
CVE-2026-86350-Abraxas-Labs.py contra a build corrigida: o testemunho mapeado não deve aparecer.Se não puder atualizar imediatamente
Alvo apenas http://127.0.0.1:8088 (ou o loopback que você vinculou). Não aponte este script para a internet.
python3 CVE-2026-86350-Abraxas-Labs.py
Sucesso é o testemunho acima no corpo da resposta. HTML 200 genérico não é isso.
Stack de loopback usada para reproduzir. Imagens oficiais, a menos que um Dockerfile nesta pasta faça build a partir do código-fonte.
cd lab
docker compose up --force-recreate
Vincule a árvore do produto vulnerável ao lado do Compose se o YAML montar um diretório local (zip do plugin / tag de código-fonte da tabela de versões). Não publique nada exceto 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.
Este pacote de divulgação está licenciado sob a GNU Affero General Public License v3.0. Ver LICENSE.
Este pacote é destinado ao fornecedor, ao proprietário do site e a labs licenciados. O script se comunica com 127.0.0.1. Usá-lo contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantias.