
CVE-2026-24880: Apacheのアップグレード推奨事項は実際にあなたのTomcatに適用されますか?バージョン比較ではなく、クラスの存在によって修正を検出します。7.0/8.0/8.5/9.0/10.0/10.1/11.0系をカバーします。
CVE-2026-24880 · GHSA-563x-q5rq-57qp —— Apache の
upgrade to version 11.0.20, 10.1.52 or 9.0.116 という文言はあなたに当てはまるか?
多くの人には当てはまらず、しかもその「当てはまらない」パターンは4種類ある。このツールはあなたの成果物をスキャンして、どのパターンかを教えてくれる。
java -jar tomcat-line-check.jar /path/to/tomcat # 解凍してデプロイした Tomcat
java -jar tomcat-line-check.jar app.war # war
java -jar tomcat-line-check.jar app.jar # Spring Boot fat jar
java -jar tomcat-line-check.jar --table # 7系統の判定表だけを見る
java -jar tomcat-line-check.jar --utf8 ... # Windows コンソールで中国語が文字化けする場合に追加
unzip -l tomcat-coyote-<ver>.jar | grep ChunkExtension
org/apache/tomcat/util/http/parser/ChunkExtension.class があれば = 修正済み。なければ = 修正なし。
🔴 本ツールはバージョン番号の大小比較で修正済みかどうかを判定しない —— なぜなら、バージョン番号の言説こそがこの CVE で誤っている部分だからだ。
判定表は tools/gen_table.py が一次ソースから生成し、7つのアサーションが通らなければ表の出力を拒否する。
| 系統 | 最終版 | EOL | 修正あり | 出口 |
|---|---|---|---|---|
| 7.0 | 7.0.109 | 2021-03-31 | なし | ❌ 7.0.110 = 404 |
| 8.0 | 8.0.53 | 2018-06-30 | なし | ❌ 8.0.54 = 404 |
| 8.5 | 8.5.100 | 2024-03-31 | なし | ❌ 8.5.101 = 404 |
| 10.0 | 10.0.27 | 2022-10-31 | なし | ❌ 10.0.28 = 404 |
| 9.0 | 9.0.121 | 2027-03-31 | 9.0.115 はなし | ✅ 9.0.116 |
| 10.1 | 10.1.59 | EOL 前 | 10.1.52 はなし | ✅ 10.1.53 |
| 11.0 | 11.0.25 | EOL 前 | 11.0.18 はなし | ✅ 11.0.20 |
① あなたが 8.5 / 7.0 / 8.0 系統にいる場合 —— 公式が示した3つのバージョンのどれもあなたの系統に存在せず、
しかもあなたの系統は配布停止済み(8.5.101 / 7.0.110 / 8.0.54 は Maven Central でいずれも 404)。
8.0 は特に特殊:公式はこれを unknown と表示しており、「影響があるかどうか」自体に答えていない。
② あなたが 10.1 系統にいる場合 —— 公式は 10.1.52 へのアップグレードを指示するが、10.1.52 自体に修正がない。
同じ公告の前の段落で 10.1.0-M1 through 10.1.52 が影響を受けるとされている。
Apache 自身の security-10.html は
この CVE を 10.1.53 の節に分類している。compare 10.1.52...10.1.53 にも修正 commit f07df938 が確かに含まれている。
→ その文言通りにアップグレードしても、アップグレードしたことにならない。
③ あなたが 10.0 系統にいる場合 —— 公式公告に 10.0. は 0 回しか登場しない。
影響を受けるリストにも、2つの unknown にも含まれない。GitHub advisory の2つの範囲
(>= 7.0.0, < 9.0.116 と >= 10.1.0-M1, < 10.1.52)もこれをカバーしない。
しかも 10.0.27 の ChunkedInputFilter のメンバーは 7.0.109 / 8.5.100 と一字一句同じで、10.0.28 は 404。
→ 10.0 が影響を受けるかどうかに答えたソースは存在しない。
④ あなたが Dependabot / OSV を使っている場合 —— GitHub advisory は 7.0/8.5/9.0 を1つの範囲にまとめ、
first_patched_version = 9.0.116 としているため、機械は 8.5 のユーザーに 9.0.116 へのアップグレードを指示する。
それは別のメジャーバージョン系統であり、パッチ適用ではない。
low と評価している(GitHub advisory は high / CVSS 7.5)。
両方の数値をここに記載する。自分に都合の良い方だけを選んで語ることはしない。1b586d6(9.0)· f07df938(10.1)· fde1a82(11.0)python tools/gen_table.py --dry # アサーションのみ実行、ファイルは書かない
python tools/gen_table.py # アサーションが全て通った場合のみ LineTable.java を書く
アサーションの対象:陽性(9.0.116 / 10.1.53 / 11.0.20 は修正クラスを持つこと)、陰性(9.0.115 / 10.1.52 は持たないこと)、 中核主張(公式の recommend がまさに 10.1.52 を指していること)、EOL 系統、出口なし(最終版の次版は 404 であること)、 センチネル(存在しないバージョンは 404 であること。404 判定自体が壊れていない証明)、10.0 の不在。
mvn package # JDK 17 が必要。実行時はゼロ依存
Apache-2.0