1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Apache Tomcat バージョン一覧とEOL(サポート終了)日程:Tomcat 5.5〜11まで完全ガイド

1
Posted at

はじめに:なぜ今Tomcatのバージョン管理が重要なのか

Apache Tomcat は世界で最も広く使われている Java サーブレットコンテナです。エンタープライズのデータセンターでスタンドアロン稼働するだけでなく、Spring Boot のデフォルトサーブレットコンテナとして組み込まれ、膨大な数の内部ツールやパブリックAPIを支えています。

2025年10月、脅威インテリジェンス企業 Criminal IP が調査した結果、インターネット上に公開された Tomcat インスタンスが 54万件以上 存在し、その多くで HTTP PUT が有効になっていることが判明しました。Tomcat のデプロイは「安定しているから触らない」という運用になりがちなため、EOL(End-of-Life/サポート終了)バージョンが本番環境に静かに残り続けるリスクがあります。

特に重要なのは、Tomcat 9 が Java EE(javax.*)名前空間を実装した最後のバージョンという点です。Tomcat 10 以降は Jakarta EE(jakarta.*)に移行しており、Tomcat 9 からのアップグレードは「サーバーの更新」ではなく 「アプリケーションの移行作業」 になります。

  • Tomcat 8.5 はすでに2024年3月31日にEOL(3年以上経過)
  • Tomcat 9.0.x のサポートは 2027年3月31日 に終了予定

Apache Tomcat のサポートポリシーの仕組み

Apache Tomcat プロジェクトは、Angular や Node.js のように固定されたサポート期間を公表していません。代わりに、以下の一貫したパターンに従っています。

約10年のサポートブランチ: メジャーバージョンは初回リリースから概ね10年間サポートされます。

3つの並行ブランチ: 通常、同時に3つのメジャーバージョンがサポートされます。新しいメジャーバージョンが安定版になると、最も古いブランチが終了します。

約1年前のEOL予告: サポート終了の約1年前に公式アナウンスが行われます。

仕様レベルとの対応: 各メジャーバージョンは特定の Servlet / JSP / EL / WebSocket 仕様を実装します。Tomcat 9 以前は Java EE 仕様、Tomcat 10 以降は Jakarta EE 仕様に対応します。

注目:Tomcat 9 の LTS 計画(2026年2月発表)

2026年2月、Tomcatチームは Tomcat 9(Java EE 最後のバージョン)に対する正式な長期サポート計画を発表しました。

  • Tomcat 9.0.x のサポートは 2027年3月31日 まで継続
  • その直前に新ブランチ Tomcat 9.1.x の提供が開始され、2030年12月31日 までサポート(Java 8 系ディストリビューションの多くのサポート終了日に合わせた設定)
  • 9.0.x と 9.1.x の差分は最小限:APR/ネイティブコネクタ(HTTP・HTTPS・AJP)の削除と Tomcat Native 1.3.x のサポート終了のみ(Tomcat Native 2.0.x は継続)

これは Apache Tomcat プロジェクト史上初めて、ブランチを制約付き LTS ラインに分割した事例であり、Tomcat 9 上に残る Java EE ワークロードがいかに多いかを示しています。

Apache Tomcat バージョン一覧・リリースタイムライン

バージョン 初回リリース EOL(サポート終了) 最終リリース ステータス
Tomcat 11.0 2024年10月 未定 11.0.22(2026年5月) ✅ 現行・推奨
Tomcat 10.1 2022年9月 未定 10.1.55(2026年5月) ✅ サポート中
Tomcat 10.0 2020年12月 2022年10月31日 10.0.27 ❌ EOL
Tomcat 9.0.x 2018年頃 2027年3月31日 9.0.118(2026年5月) ⚠️ 終了予定
Tomcat 9.1.x 2027年3月頃(予定) 2030年12月31日 - 🔜 予定
Tomcat 8.5 2016年3月 2024年3月31日 8.5.100 ❌ EOL
Tomcat 8.0 - 2018年6月30日 8.0.53 ❌ EOL
Tomcat 7.0 2010年頃 2021年3月31日 7.0.109 ❌ EOL
Tomcat 6.0 - 2016年12月31日 - ❌ EOL
Tomcat 5.5 - 2012年9月30日 - ❌ EOL

2026年5月時点のサポート中ブランチの最新リリースは 11.0.22、10.1.55、9.0.118 です。Tomcat 12 は Jakarta EE 12 / Java 21 以上を対象に開発中ですが、マイルストーンリリースや日程は未発表です。

Apache Tomcat 9 のEOL:2027年3月31日

Tomcat 9.0.x のサポートは 2027年3月31日 に終了します。これは Tomcat ユーザーの中で最も多くの環境に影響する、最重要日程です。Tomcat 9 は javax.servlet API に対応した最後のバージョンであるため、Java EE ベースのすべてのアプリケーションは Tomcat 9 が上限になります。

Tomcat 9.1.x LTS の注意点

  • 9.0.x の最終リリースは 2027年3月31日 直前を予定
  • 9.1.x は 2030年12月31日までサポート予定だが、APR/ネイティブ AJP コネクタを使っている場合は NIO AJP コネクタへの移行が必要
  • 重要:9.1.x に移行しても javax.*jakarta.* の名前空間移行は依然として必要です。9.1 はあくまで「移行の時間を買うもの」であり、移行を不要にするものではありません。Tomcat 10.1 または 11 への移行を 2030年までの計画として位置づけるべきです。

Tomcat 9 に届き続けるCVE(脆弱性)

2026年5月のセキュリティリリースだけで Tomcat 9.0.118 に7件の脆弱性が修正されており(詳細は2026年5月 Tomcat セキュリティリリースの解説を参照)、2026年4月には Tomcat 9・10・11 合わせて10件のCVEがパッチされました(2026年4月のCVEまとめ)。パッチの頻度は月1回ペースであり、EOL 後はこれらのアドバイザリがあなたのデプロイ環境をカバーしなくなります。

Apache Tomcat 8.5 のEOL:2024年3月31日(すでに終了)

Tomcat 8.5 は 2024年3月31日 にEOLを迎え、最終リリースは 8.5.100 です。もともと Tomcat 9 の機能を Java 7 環境にも提供するため 2016年3月に Tomcat 9.0.0.M4 からフォークされたブランチで、Tomcat 史上最も長寿かつ広く使われたブランチの一つです。それゆえに、認定ミドルウェアスタック、ベンダー製アプライアンス、Servlet 3.1 ベースのアプリケーションを中心に、今なお本番環境で稼働しているケースが多数あります。

Tomcat 8.5 に影響する主要なCVE(パッチなし)

CVE-2025-24813(CVSS 9.8 / Critical)
partial PUT 処理のパス等価性の欠陥により、デフォルトサーブレットへの書き込みが有効な場合にリモートコード実行(RCE)、情報漏洩、コンテンツ注入が可能。2025年3月の開示からわずか約30時間でエクスプロイトコードが公開され、CISAの既知悪用済み脆弱性(KEV)カタログにも登録済み。Tomcat 9.0.99、10.1.35、11.0.3 で修正済みだが、8.5 には修正なし。

CVE-2024-50379 / CVE-2024-56337(CVSS 9.8 / Critical)
大文字小文字を区別しないファイルシステム上での JSP コンパイル時の TOCTOU 競合状態により、デフォルトサーブレットへの書き込みが有効な場合にRCEが可能。2024年12月開示(8.5の最終リリースから9ヵ月後)。

CVE-2025-55752(Important)
リライト処理のパストラバーサルで /WEB-INF//META-INF/ の保護をバイパス可能。PUT が有効な環境ではRCEにエスカレートするリスクあり。CVE-2025-55754(コンソールログへのANSIエスケープシーケンス注入、8.5.60〜8.5.100 が対象)および CVE-2025-61795(マルチパートアップロード一時ファイルによるDoS)と同時開示。

2026年5月のCVEバッチ(7件)
CVE-2026-43512(ダイジェスト認証バイパス:不明ユーザーがパスワード null でログイン可能)、CVE-2026-43515(セキュリティ制約の不正適用)、CVE-2026-43514CVE-2026-43513CVE-2026-42498CVE-2026-41293CVE-2026-41284 の合計7件。NVD の製品ステータスでは大半について Tomcat 8.5 への影響が確認されています。

Tomcat 8.5 を運用中の組織は、サポート対象ブランチがパッチを受けるペースと同じ速度で 未修正のCVEを蓄積し続けています。

Apache Tomcat 10.0 のEOL:2022年10月31日

Tomcat 10.0 は 2020年12月リリース・2022年10月31日EOLという、現行ブランチ中最も短命なバージョンです。Jakarta EE 9(jakarta.*名前空間)を初めて実装した「移行用のリリース」として位置づけられており、Tomcat 10.1 にすぐ置き換えられました。最終リリースは 10.0.27 です。

10.0 から 10.1 への移行は Jakarta 名前空間内に留まるため、比較的容易なアップグレードです。10.0 に留まり続ける理由はありません。

Apache Tomcat 10.1:サポート中

2022年9月初回リリース。Jakarta EE 10 仕様(Servlet 6.0、JSP 3.1)を実装し、Java 11 以上が必要です。2026年5月に 10.1.55 がリリースされ、現在も活発にメンテナンス中です。EOL は未定ですが、パターン上 Tomcat 12 の安定版リリースが近づいた段階でアナウンスが来ると予測されます。

Apache Tomcat 11.0:最新版・推奨バージョン

2024年10月初回リリース。Jakarta EE 11 仕様(Servlet 6.1、JSP 4.0、WebSocket 2.2)を実装し、Java 17 以上が必要です。新規プロジェクトおよび Tomcat 9 からの移行先として 最も推奨されるバージョンです。javax.*jakarta.* の名前空間変更は 10.1 でも 11 でも同様に発生するため、どうせ移行するなら最も長いサポート期間を持つ 11 を選ぶのが合理的です。

古いバージョン:Tomcat 8.0、7.0、6.0、5.5

Tomcat 8.5 より古いバージョンはすべて5年以上EOLが経過しています。Tomcat 8.0 は 2018年6月30日(最終リリース 8.0.53)、Tomcat 7.0 は 2021年3月31日(最終リリース 7.0.109)、Tomcat 6.0 は 2016年12月31日、Tomcat 5.5 は 2012年9月30日にそれぞれEOLを迎えています。これらのバージョンを本番環境で運用することは、最終リリース以降に共有コンポーネントに蓄積されたすべての CVE を未修正のまま抱えることを意味します。

Tomcat EOL 後に何が起きるか

EOL を迎えると、以下の3つが起きます。

① セキュリティパッチと記録が止まる: Apache は EOL バージョンのセキュリティページを更新しません。tomcat.apache.org/security-8.html は 8.5.99 以降更新が止まっており、一見「問題なし」に見えます。しかし NVD(National Vulnerability Database)には 8.5 が影響範囲として記載された CVE が継続的に登録されています。「Apacheのセキュリティページに記載なし」≠「影響なし」です。また、脆弱性スキャナーは EOL バージョン自体もフラグを立てます。

② プラットフォームが乖離する: 新しい Java バージョン、TLS 要件の更新、HTTP/2 の動作変更は、サポート対象ブランチに対してのみ検証されます。EOL の Tomcat は JDK、ロードバランサー、クライアントとの互換性が徐々に失われていきます。

③ コンプライアンス監査で指摘される: PCI DSS、SOC 2、HIPAA、FedRAMP はいずれもサポートされたソフトウェアの使用を要求しています。さらに規制の水準は上昇しており、EU サイバーレジリエンス法(CRA)第14条 の脆弱性報告義務は2026年9月に施行開始、DORA 第6条 の ICT リスク管理義務は2025年1月からすでに発効しています。パッチのない既知 EOL のサーブレットコンテナを稼働させることは、社内のリスク議論にとどまらず、報告対象のコンプライアンス違反になりつつあります。

見落とされがちな「組み込みTomcat」の影響範囲

Spring Boot は Tomcat をデフォルトサーブレットコンテナとして組み込むため、スタンドアロンの Tomcat をデプロイしていなくても Tomcat の CVE の影響を受けます。EOL の Spring Boot 2.7 を使っているプロジェクトは tomcat-embed-core を通じて EOL Tomcat 9 系の脆弱性を引き継いでいます。この問題は、CVE-2025-66614 と CVE-2026-24733 が Spring Boot 2.7 にも影響を与えた事例でも確認されています。

EOL Tomcat への対応策

選択肢1:Tomcat 10.1 または 11 へのアップグレード

ほとんどのチームにとって正しい長期的な解決策ですが、スコープを正確に把握する必要があります。Tomcat 9 以前からの移行は javax.*jakarta.* の名前空間移行を伴い、アプリケーションコード・サードパーティ依存ライブラリ・ビルド設定のすべてが変更対象になります。Apache が提供する Tomcat Migration Tool for Jakarta EE を使えばデプロイ済み WAR を自動変換できます($CATALINA_BASE/webapps-javaee に配置するだけで変換される)が、依存ライブラリのバイトコード変換はあくまで暫定措置です。大規模エンタープライズアプリケーションでは複数四半期にわたるプロジェクトになります。

なお「8.5 → 9 へ先に上げる」というアプローチは直近のEOLギャップを解消しますが、Tomcat 9.0.x の 2027年3月の期限と名前空間移行が依然として残り、結果的に2段階の移行が必要になります。

選択肢2:Tomcat からの完全移行

Jetty や Undertow、フルマネージドプラットフォームへの移行を EOL を機に検討する組織もあります。最もコストがかかる選択肢であり、EOL 単体を理由とするには割が合わないことが多いですが、プラットフォーム統合が別途進んでいる場合は合理的な判断になりえます。

選択肢3:商用の延長サポートの導入

HeroDevs NES(Never-Ending Support)for Apache Tomcat は、オープンソースのサポートが終了した時点からギャップなくパッチを提供する、Tomcat 8.5 のセキュアなドロップイン代替品です。上記のEOL後CVEバッチ(CVE-2025-24813、2024年12月のTOCTOUペア、2025年10月のトリオ、2026年5月の7件)に対する修正を提供済みです。また Tomcat 9.0 についても、2027年3月のEOL後もサポートを延長し、計画的なJakarta移行ができる時間的余裕を提供します。

よくある質問(FAQ)

Q. Tomcat 9 はいつEOLになりますか?
A. Tomcat 9.0.x のサポートは 2027年3月31日に終了します。後継の 9.1.x ブランチが 2030年12月31日まで提供される予定ですが、APR/ネイティブコネクタが削除されます。Tomcat 9 は Java EE(javax.*)をサポートする最後のバージョンです。

Q. Tomcat 8.5 はまだサポートされていますか?
A. いいえ。2024年3月31日にEOLを迎え、最終リリースは 8.5.100 です。CVE-2025-24813 などの重大な脆弱性の影響を受けますが、Apache による公式パッチは提供されません。

Q. Tomcat 9 と Tomcat 10 の違いは何ですか?
A. Tomcat 9 は Java EE 8 仕様の javax.* パッケージ名前空間を実装しています。Tomcat 10 以降は Jakarta EE 仕様の jakarta.* 名前空間を使用します。Tomcat 9 向けに書かれたアプリケーションは、コード変更なしには Tomcat 10 以降で動作しません(Apache の移行ツールによる自動変換は可能)。

Q. 新規プロジェクトにはどのバージョンを選べばいいですか?
A. Tomcat 11 を推奨します。Jakarta EE 11 仕様を実装し、Java 17 以上を必要とし、現行ブランチの中で最も長いサポート期間を持ちます。Java 11 との互換性が必要な場合は Tomcat 10.1 も良い選択肢です。

Q. EOLのTomcatは動作が止まりますか?
A. いいえ、動き続けます。それが問題の本質です。サービスは提供し続けながら、未修正の脆弱性を蓄積し、コンプライアンス監査で指摘され、新しい JDK やインフラとの互換性が徐々に失われていきます。リスクはスキャナーの検出や監査、あるいは実際のエクスプロイトが発生するまで静かに拡大します。

まとめ

Tomcat の約10年サポートブランチは「安定しているから大丈夫」という錯覚を生みがちですが、重要な日程は具体的です。Tomcat 8.5 は2024年3月以降パッチが提供されておらず、サポート対象ブランチへの CVE バッチすべての影響を受け続けています。Tomcat 9.0.x は2027年3月31日にEOLを迎え、Java EE 最後のバージョンであるがゆえに、すべての Tomcat 9 アプリケーションは名前空間移行を控えています。

Apache のセキュリティアドバイザリに記載がないことを「リスクなし」と解釈するのが最も危険な判断です。アップグレード、移行、延長サポートのどれを選ぶにせよ、早期に計画を立て、計画的に行動することが重要です。

Tomcat 8.5、Tomcat 9、またはそれ以前のバージョンを運用している場合は、NES for Apache Tomcat の詳細を確認するか、HeroDevs にお問い合わせください。

原文:HeroDevs Blog - Apache Tomcat Versions and EOL Dates

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?