
CVE-2026-86350 のディスクロージャーパックおよび PoC。Apache Tomcat 9.0.121 における未認証の HTTP/2 リクエストヘッダー混同 (CWE-444) で、ラボでの再現手順とパッチガイダンスを含む。
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-86350
Apache Tomcat 9.0.121 — Apache Software Foundation
Apache Tomcat における HTTP/2 リクエストの解釈の不一致(「HTTP Request/Response smuggling」)脆弱性。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 |
| Product | Apache Tomcat |
| Affected | 9.0.121 までのすべてのバージョン(含む) |
| Patched | 9.0.122 以降 |
| Auth | 認証不要(ソースマップを参照) |
| License | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 のみ · ベンダー/クライアント開示パックであり、スキャナーではない |
java/org/apache/coyote/http2/HpackDecoder.java および HPackHuffman.java。パッチ 9.0.122 コミット 5adadc4e / 11.0.26 192bc749 は早期検証を revert する。
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ストリーム 1 で無効な HTTP/2 フィールドの後、ストリーム 2 がクリーンな 200 にならない(GOAWAY、RST、またはマーカーの取り違え)。
まずこれを実施: Apache Tomcat を 9.0.122 以降に更新する。
アップグレード後の確認
CVE-2026-86350-Abraxas-Labs.py を再実行する: マップされたウィットネスが出現しないことを確認する。すぐに更新できない場合
http://127.0.0.1:8088(またはバインドしたループバック)のみを対象とすること。このスクリプトをインターネットに向けないこと。
python3 CVE-2026-86350-Abraxas-Labs.py
成功とは、レスポンスボディに上記のウィットネスが現れることである。一般的な 200 HTML ではない。
再現に使用したループバックスタック。このフォルダ内の Dockerfile がソースからビルドする場合を除き、公式イメージを使用。
cd lab
docker compose up --force-recreate
YAML がローカルディレクトリをマウントする場合(バージョン表のプラグイン zip / ソースタグ)、Compose の隣に脆弱な製品ツリーをバインドすること。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 によって許可されていない。保証はない。