
あなたのJetty(またはSpring Bootに同梱されているJetty)は、2026年のこの6件のCVEのうちどれに該当するのか —— そして、公式がアップグレードを推奨しているそのバージョンは、Maven Centralに本当に存在するのか?
主眼は CVE-2026-2332(GHSA-355h-qmc2-wpwf、high / CVSS v3 7.4):jetty-httpのchunkedリクエストスマグリング。
2026-09-17に公式は同系統のCVE-2026-19203(LF EXT.TERMスマグリング、high / CVSS v4 8.3)も公開した:その9.4系は 9.4.63 までを対象とし、
公式は 9.4.64 へのアップグレードを推奨している —— そして9.4.64もCentral上では同様に 404 である。
最も確かな事実:9.4 / 10 / 11というEOLの3つの旧系列には、公開された修正版がそもそも存在しない —— 公式のセキュリティページにはそれらについて個別に
see details for availability(= 商用サポート)と記載されており、それらのバージョン番号はMaven Central上で実測したところすべて404であった。
java -jar jetty-line-check.jar /path/to/jetty # 解压部署的 Jetty(扫 lib/*.jar)
java -jar jetty-line-check.jar app.war # war
java -jar jetty-line-check.jar app.jar # Spring Boot fat jar
java -jar jetty-line-check.jar --table # 只看六条 CVE × 模块 × 版本线的判定表
java -jar jetty-line-check.jar --utf8 ... # Windows 控制台中文乱码时加
姉妹プロジェクト tomcat-line-check の判定基準は「jar の中に特定の修正クラスがあるかどうか」でした。 なぜなら Tomcat のその修正は新しいクラスを1つ追加したからです。
Jetty のこれらの項目はその方法では通用しません。 主軸の CVE-2026-2332 は、その修正が HttpParser のメソッド本体を変更したもので、新しいクラスは一切追加していません
(構築前に gh api compare + javap で確認済み)。したがって判定基準は次の1つしかありません:
あなたの完全な座標 + バージョンラインが、どの CVE に該当するか;そして公式が名指しした修正版が、Maven Central 上に実在するかどうか。
判定表は tools/gen_table.py が6件の GitHub advisory の vulnerabilities[] + Maven Central 実 jar の HEAD プローブから生成し、
7組のアサーション(陽性対照 / 中核主張 / 旧ライン最終版 / センチネル / 主軸構造 / 分割モジュール / 格付け)を通過しなければ表を出力しません。
| 三態 | 意味 |
|---|---|
PUBLIC | advisory が修正版を名指しし、かつそれが Maven Central 上に実在する —— 公開されておりアップグレード可能 |
404 | advisory が修正版を名指ししたが、それは Central 上で404 —— 公式セキュリティページには see details for availability(商用サポート)と記載 |
無 | advisory がこのラインの修正版をまったく示していない(first_patched_version が空)—— このラインを修正するにはメジャーバージョンをまたいだアップグレードしかない |
旧ライン(9.4 / 10.0 / 11.0)のあの一帯の 404 と 無 こそが、本ツールの価値の所在です。--table を実行して全体像をご覧ください。
org.eclipse.jetty の reviewed advisory、2026年)| CVE | モジュール | 評価 | 一言 |
|---|---|---|---|
| CVE-2026-2332 | jetty-http | high / v3 7.4 | ⭐ 目玉:chunked quoted-string 内の \r\n がチャンクヘッダの終端と見なされる → リクエストスマグリング(CWE-444) |
| CVE-2026-19203 | jetty-http | high / v4 8.3 | ⭐ 2332 と同系統の続編(09-17):chunk 拡張内の \n(LF)がチャンクヘッダの終端と見なされる → スマグリング(LF EXT.TERM);9.4 系は 9.4.63 まで対象 |
| CVE-2026-5795 | jaspi(12.x は ee8/9/10/11-jaspi に分割) | high / v3 7.4 | JASPI の ThreadLocal がクリアされない → 権限昇格 |
| CVE-2026-6790 | jetty-server | medium / v3 5.3 | HTTP/2・3 の Host / :authority 混同 |
| CVE-2026-10050 | jetty-security(12.x は ee8/9-security を追加) | high / v4 8.7 | Digest 認証の ISO-8859-1 処理 |
| CVE-2025-11143 | jetty-http | low / v3 3.7 | URI 解析の差異 |
🔴 2件のリクエストスマグリング(2332 と 19203)の影響範囲は確かなもの(いずれも ServerConnector / HttpParser というデフォルト解析の主経路に該当し、
特定の機能を有効化する必要はありません)。残りの4件は判定表の1行として扱うのみです:
--table とスキャン出力の両方に記載)。デフォルト構成のデプロイに対して誤検知しないでください。9.4 / 10 / 11 / 12.0 ラインはデフォルトで該当します。CVE-2026-10050(Digest)の影響範囲は非常に小さく —— Digest 認証を明示的に有効化しないと到達しません。主要な売りにしないでください。CVE-2026-6790 は medium、CVE-2025-11143 は low —— 一括りに「高危険度」と呼んではいけません。vulnerabilities は空で、
Dependabot は「この穴がある」と報告できても「どこまで上げればよいか」を示せません;区間はリポジトリレベルの advisory にのみ存在します。グローバル DB が補完されたら、この記述は変更が必要です。see details for availability であり、そこまでです。GHSA-p2j5-5566-vpv9 の vulnerabilities は空)GHSA-r7p8-xq5m-436c · GHSA-7p3p-8qv8-m2vh · GHSA-2fvj-hgj9-j2gr · GHSA-wjpw-4j6x-6rwhsee details for availability の出典):https://jetty.org/security.htmlpython tools/gen_table.py --dry # 只跑断言,不写文件
python tools/gen_table.py # 断言全过才写 CveTable.java
python tools/recheck_before_publish.py # 发文当天重跑,主张失效就改文案别改判据
mvn package # 需要 JDK 17;运行时零依赖(JUnit 仅测试期)
| コード | 意味 |
|---|---|
0 | スキャン完了、かつすべてのファイルが実際に読み込まれた |
2 | 使用法エラー(パスが指定されていない) |
4 | 読み込めないファイルがある —— zip でない、内容が切り詰められている、または読み取りに失敗した |
🔴 4 の理由: 記録は人に見せるためのものだが、CI やスクリプトが見るのは終了コードである。これがなければ、破損した / 暗号化された / ダウンロードが不完全な jar は、静かに「問題は見つかりませんでした」という一文になってしまう——「読み込めなかった」と「あなたは安全である」は必ず別の文でなければならない。
⚠️ 正当な空の jar(22 バイトの EOCD レコード 1 件)は読み込めない扱いにはならず、4 は発生しない。
MIT