
Paquete de divulgación y PoC para CVE-2026-86350, una confusión de encabezados de solicitud HTTP/2 no autenticada (CWE-444) en Apache Tomcat 9.0.121, con reproducción en laboratorio y guía de parches.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-86350
Apache Tomcat 9.0.121 — Apache Software Foundation
La interpretación inconsistente de solicitudes HTTP/2 (vulnerabilidad de 'contrabando de solicitudes/respuestas HTTP') en Apache Tomcat, causada por una regresión en la corrección de CVE-2026-41293, puede provocar una confusión de encabezados de solicitud.
| 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 |
| Producto | Apache Tomcat |
| Afectadas | todas las versiones hasta la 9.0.121 (inclusive) |
| Parcheadas | 9.0.122 y posteriores |
| Autenticación | no autenticada (ver mapa de origen) |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1 · paquete de divulgación para el proveedor/cliente, no un escáner |
java/org/apache/coyote/http2/HpackDecoder.java y HPackHuffman.java. El parche 9.0.122 commit 5adadc4e / 11.0.26 192bc749 revierte la validación temprana.
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 / GOAWAYTras un campo HTTP/2 inválido en el flujo 1, el flujo 2 no es un 200 limpio (GOAWAY, RST o confusión de marcadores).
Haga esto primero: Actualice Apache Tomcat a 9.0.122 o posterior.
Verifique después de la actualización
CVE-2026-86350-Abraxas-Labs.py contra la compilación parcheada: el testigo mapeado no debe aparecer.Si no puede actualizar de inmediato
Apunte únicamente a http://127.0.0.1:8088 (o al loopback que haya enlazado). No apunte este script a internet.
python3 CVE-2026-86350-Abraxas-Labs.py
El éxito es el testigo anterior en el cuerpo de la respuesta. Un HTML 200 genérico no lo es.
Pila de loopback utilizada para reproducir. Imágenes oficiales a menos que un Dockerfile en esta carpeta compile desde el código fuente.
cd lab
docker compose up --force-recreate
Enlace el árbol del producto vulnerable junto a Compose si el YAML monta un directorio local (zip del plugin / etiqueta de código fuente de la tabla de versiones). No publique nada excepto 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 paquete de divulgación está licenciado bajo la GNU Affero General Public License v3.0. Ver LICENSE.
Este paquete es para el proveedor, el propietario del sitio y los laboratorios autorizados. El script se comunica con 127.0.0.1. Su uso contra sistemas que no posee no está autorizado por Abraxas Labs. Sin garantía.