Apache Tomcat の脆弱性|構成別の影響確認と更新判断

  • URLをコピーしました!
目次

はじめに

2026 年 9 月 23 日、Apache Software Foundation は Apache Tomcat 本体の脆弱性 12 件と、Tomcat Native の脆弱性 3 件、あわせて 15 件を公表しました。JPCERT/CC と IPA は、翌 24 日に JVNVU#94625787 として同じ 15 件を掲載しています。

対象となる機能は WebSocket、HTTP/2、AJP、Jakarta Authentication、TLS とクライアント証明書認証まで多岐にわたります。「自社のシステムに関係するのか」「どのバージョンへ更新すればよいのか」「Tomcat 本体の更新だけで足りるのか」を、短時間で判断しなければならない方も多いと思われます。

本記事では 15 件を順番に解説するのではなく、自環境の利用機能と実際の稼働バージョンから影響を確認し、更新対象と適用後の確認項目を判断するための材料を整理します。

この記事でわかること
  • 2026 年 9 月公表の 15 件の全体像と、公表日・修正版の公開日の違い
  • Tomcat 本体と Tomcat Native を分けた更新対象の早見表
  • WebSocket、HTTP/2、AJP、TLS など利用機能から引ける影響確認表
  • 設定ファイルではなく稼働プロセスを基準にした確認手順
  • 更新後に確認したい実稼働バージョンと回帰確認の観点

結論として、Tomcat 本体は 11.0.26、10.1.60、9.0.122 以降への更新が基本の対応です。Tomcat Native を読み込んでいる環境では、今回の本体の修正版が Native の最小要件を引き上げているため、Native も 2.0.16 または 1.3.9 以降へあわせて更新する対象になります。

特定の機能を使っていないことは、その機能に関係する CVE を非該当と判断する材料になりますが、15 件すべての非該当を意味しません。また、執筆時点(2026 年 9 月 25 日)で 15 件はいずれも CISA の KEV カタログに掲載されていません。

Apache Tomcat 2026 年 9 月公表の脆弱性 15 件の全体像

15 件の内訳は Tomcat 本体が 12 件、Tomcat Native が 3 件です。最初に日付の関係と、深刻度の見え方の違いを整理します。

公表日と修正版の公開日は異なる

今回の修正版は、脆弱性の公表より前に公開されています。Apache のセキュリティページでは、修正版ごとのリリース日と、脆弱性ごとの報告日・公表日が別々に記載されています。

日付出来事出典
2026 年 9 月 7 日Tomcat Native 2.0.16/1.3.9 の公開Apache Tomcat 公式サイト
2026 年 9 月 15 日Tomcat 11.0.26/10.1.60/9.0.122 の公開各系列のセキュリティページ
2026 年 9 月 23 日Apache による 15 件の公表、CVE Record の公開セキュリティページ、CVE Record
2026 年 9 月 24 日JVNVU#94625787 の公開JVN

JVN のタイトルにある「2026年9月23日」は Apache の公表日を指しており、JVN 自体の公開日は 9 月 24 日です。9 月 15 日以降に修正版へ更新していた環境は、公表前に更新を終えていた可能性があります。ただし、ファイルを入れ替えただけで再起動していない場合もあるため、稼働中のバージョンで判断することをおすすめします(確認方法は後述します)。

Apache の深刻度と CISA-ADP の CVSS

Apache は各脆弱性に独自の深刻度を付けています。今回の 15 件は Important が 6 件、Moderate が 4 件、Low が 5 件です。Apache は CVSS スコアを付与していません。

一方、CVE Record の CISA-ADP コンテナーには、CISA が付与した CVSS v3.1 と SSVC の評価が記録されています。SSVC の技術的影響(Technical Impact)が Total とされた次の 6 件は、Apache の深刻度と CVSS の印象が大きく異なります。

CVE内容Apache の深刻度CISA-ADP の CVSSSSVC 技術的影響
CVE-2026-76183WebSocket エンドポイントのセキュリティ制約の迂回Important9.8Total
CVE-2026-86248FFM 使用時に OCSP が soft-fail する(不完全な修正)Moderate9.8Total
CVE-2026-86350HTTP/2 リクエストヘッダーの混同(修正による回帰)Important9.1Total
CVE-2026-86246Tomcat Native の安全でない OpenSSL オプションModerate9.1Total
CVE-2026-77762別の HTTP/2 リクエストへのトレーラー注入Low8.1Total
CVE-2026-86247Tomcat Native のクライアント証明書要件の格下げImportant(CVE Record の CNA 記載は moderate)7.4Total

CVSS の基本値は、個々の環境で機能を使っているかどうかを考慮しません。Apache の深刻度と CVSS のどちらか一方で優先度を決めるのではなく、次章以降の成立条件と自環境の利用機能を照らし合わせることをおすすめします。

悪用状況と KEV 掲載の確認結果

執筆時点で確認した範囲では、15 件はいずれも CISA の KEV カタログに掲載されていません。確認には KEV の公開データ(カタログバージョン 2026.09.23)と、9 月 24 日の KEV 追加告知を用いました。また CISA-ADP の SSVC では、9 月 23 日の評価時点で 15 件すべての Exploitation が none とされています。

これは、評価の時点で悪用が確認されていないことを示すものであり、今後も悪用されないことを意味するものではありません。なお、4 月に公表された CVE-2026-34486 は 8 月に KEV へ追加されていますが、今回の 15 件とは別の脆弱性です。KEV に掲載された場合の対応期限の考え方は、BOD 26-04 とは|KEV と外部公開で決まる対応期限の読み方で整理しています。

修正版の早見表|Tomcat 本体と Tomcat Native の更新対象

更新対象は、Tomcat 本体と Tomcat Native で分けて考えます。下表の「修正を含む最小バージョン」は今回の修正を含む最初のリリース、「執筆時点の最新版」は 2026 年 9 月 25 日時点で公式サイトに掲載されている最新リリースです。

対象系列修正を含む最小バージョン執筆時点の最新版補足
Tomcat 本体11.011.0.2611.0.26Native 2.0.16 が最小要件
Tomcat 本体10.110.1.6010.1.60Native 2.0.16 が最小要件
Tomcat 本体9.09.0.1229.0.122Native 1.3.9 が最小要件。2027 年 3 月 31 日にサポート終了予定
Tomcat Native2.02.0.162.0.16—
Tomcat Native1.31.3.91.3.92027 年 3 月 31 日にサポート終了予定

執筆時点では両者が一致していますが、今後のリリースで最新版は先へ進みます。公開後に本記事を参照する場合は、各系列のダウンロードページで最新版を確認することをおすすめします。

Tomcat Native の更新には、本体との組み合わせに関する注意があります。公式サイトの Native 2.0.16 の告知では、これより前に公開された Tomcat について次のように説明されています。

参考: Apache Tomcat 公式サイト(Tomcat Native 2.0.16 Released)
“will not be able to use OpenSSL based JSSE TLS support with this release”
(このリリースでは OpenSSL ベースの JSSE TLS サポートを利用できない)
https://tomcat.apache.org/index.html

一方で、本体の 11.0.26/10.1.60 は Native 2.0.16 を、9.0.122 は 1.3.9 を最小要件としています。つまり、Native を読み込んでいる環境では、本体と Native の片方だけを先に更新する進め方は適していません。同じメンテナンス枠でまとめて更新する計画が現実的です。

影響を受けるバージョンは CVE ごとに異なる

修正版は共通ですが、影響を受け始めるバージョンは CVE ごとに異なります。Apache のセキュリティページに記載された範囲は次のとおりです。

CVE11.0 系10.1 系9.0 系
CVE-2026-8702211.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.0.M1〜9.0.121
CVE-2026-8635011.0.22〜11.0.2510.1.55〜10.1.599.0.118〜9.0.121
CVE-2026-8624811.0.0-M14〜11.0.2510.1.22〜10.1.599.0.92〜9.0.121
CVE-2026-7967711.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.0.M1〜9.0.121
CVE-2026-7843711.0.19〜11.0.2510.1.53〜10.1.599.0.116〜9.0.121
CVE-2026-7838311.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.0.M1〜9.0.121
CVE-2026-7779111.0.0-M5〜11.0.2510.1.8〜10.1.599.0.74〜9.0.121
CVE-2026-7776211.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.39〜9.0.121
CVE-2026-7775611.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.47〜9.0.121
CVE-2026-7618311.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.0.M1〜9.0.121
CVE-2026-7597311.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.0.M4〜9.0.121
CVE-2026-7358111.0.0-M1〜11.0.2510.1.0-M1〜10.1.599.0.0.M1〜9.0.121

Tomcat Native の 3 件(CVE-2026-86243、CVE-2026-86246、CVE-2026-86247)は、いずれも 2.0.0〜2.0.15 と 1.3.0〜1.3.8 が対象です。

たとえば 9.0.73 は、CVE-2026-77791、CVE-2026-86248、CVE-2026-78437、CVE-2026-86350 の範囲外です。このように、修正版未満のすべてのバージョンが 15 件すべての影響を受けるわけではありません。ただし各系列とも、初期のバージョンから対象となっている CVE が複数あるため、修正版未満であれば少なくともいずれかの CVE の範囲に入ります。

なお、CVE-2026-73581 の CVE Record は、10.1 系の範囲を 10.1.58 まで、修正版を 10.1.59 と記載しており、セキュリティページ(10.1.59 まで、修正版 10.1.60)と差異があります。本記事はセキュリティページの記載を基準としていますが、10.1.60 へ更新すればどちらの記載でも範囲外になります。また、8.5 系以前や 10.0 系はサポートが終了しており、CVE Record では複数の CVE について 8.5 系も影響を受けると記載されています。これらの系列には修正版が提供されないため、サポート対象の系列への移行が前提になります。

以前の更新で対応済みとは判断できない 2 件

CVE-2026-86248 と CVE-2026-86350 は、2026 年春の修正と直接の関係があります。

CVE-2026-86248(CVE-2026-34500 の不完全な修正)

CVE-2026-34500 は、FFM を使用する構成で OCSP の soft-fail を無効にしていても、CLIENT_CERT 認証が想定どおり失敗しない場合がある問題で、4 月に 11.0.21/10.1.54/9.0.117 で修正されました。今回、その修正が不完全だったとして別の CVE が採番されています。

影響範囲は 11.0.0-M14〜11.0.25、10.1.22〜10.1.59、9.0.92〜9.0.121 で、4 月の修正版もこの範囲に含まれます。

CVE-2026-86350(CVE-2026-41293 の修正による回帰)

CVE-2026-41293 は HTTP/2 のリクエストヘッダーが検証されていなかった問題で、5 月に 11.0.22/10.1.55/9.0.118 で修正されました。この修正で生じた回帰により、HTTP/2 のリクエストヘッダーの混同が起こり得る状態になっています。

影響範囲は 11.0.22〜11.0.25、10.1.55〜10.1.59、9.0.118〜9.0.121 です。5 月の修正版へ更新した環境だけが範囲に入る構造で、更新を見送っていた古いバージョンは対象外です。

たとえば、CVE-2026-34486 への対応で 11.0.21、10.1.54、9.0.117 へ更新した環境も、CVE-2026-86248 の範囲に含まれます。過去の個別 CVE への対応状況ではなく、現在の稼働バージョンが今回の修正版以上かどうかで判断することをおすすめします。

利用機能別の影響確認表

15 件は、使っている機能によって関係の有無が変わります。表の「成立条件・対象機能」と「想定される影響」は Apache の記載に基づき、「確認箇所」は確認の入口として編集部が整理したものです。

WebSocket・HTTP/2・HTTP/1.0・AJP

CVE(Apache の深刻度)成立条件・対象機能想定される影響確認箇所
CVE-2026-76183(Important)セキュリティ制約で保護した WebSocket エンドポイントリクエストパスがエンドポイントのテンプレートとして誤って解釈され、セキュリティ制約を迂回されるWebSocket を提供するアプリケーションと、エンドポイントに対する制約の定義
CVE-2026-87022(Low)WebSocket の per-message-deflate長さパラメーターの不適切な処理による WebSocket メッセージのスマグリングハンドシェイク応答の Sec-WebSocket-Extensions ヘッダー
CVE-2026-77791(Important)WebSocket の close メッセージの送信busy wait による DoSWebSocket の利用有無
CVE-2026-79677(Moderate)WebSocket の非同期書き込み書き込みタイムアウトが失われることによる DoSWebSocket の利用有無
CVE-2026-86350(Important)HTTP/2(回帰を含む 11.0.22、10.1.55、9.0.118 以降のみ)HTTP/2 リクエストヘッダーの混同Connector 内の Http2Protocol の定義
CVE-2026-77762(Low)HTTP/2競合状態により、別の HTTP/2 リクエストへトレーラーフィールドが注入されるConnector 内の Http2Protocol の定義
CVE-2026-78437(Low)HTTP/2(11.0.19、10.1.53、9.0.116 以降)不正な形式のリクエストにより、タイミング次第で別ユーザーのリクエスト 1 件が失敗し得るConnector 内の Http2Protocol の定義
CVE-2026-77756(Low)HTTP/1.0 のリクエスト、リバースプロキシ配下の TomcatTransfer-Encoding ヘッダーの処理により、別ユーザーのリクエスト 1 件が失敗し得る前段のプロキシの有無と、Tomcat への転送方式
CVE-2026-78383(Important)AJP Connectorリクエストボディが送られない場合に AJP の処理スレッドが占有され、DoS に至るprotocol に AJP/1.3、org.apache.coyote.ajp.AjpNioProtocol、org.apache.coyote.ajp.AjpNio2Protocol のいずれかを指定した Connector と、実際の待ち受けポート

この中で対応判断への影響が大きいのは、認可の迂回にあたる CVE-2026-76183 です。Apache は次のように説明しています。

参考: Apache Tomcat 11 vulnerabilities(Apache Software Foundation)
“allowing the bypass of security constraints for WebSocket endpoints”
(WebSocket エンドポイントに対するセキュリティ制約の迂回を可能にする)
https://tomcat.apache.org/security-11.html

WebSocket を「認証済みの利用者だけが接続できる」前提で設計している場合、その前提が成り立たなくなります。WebSocket エンドポイントをセキュリティ制約で保護している環境では、この CVE を優先して確認することをおすすめします。

認証・TLS・Tomcat Native

CVE(Apache の深刻度)成立条件・対象機能想定される影響確認箇所
CVE-2026-75973(Low)Jakarta Authentication で SimpleAuthConfigProvider を既定のプロバイダーとし、複数の Web アプリケーションで共用最初にリクエストを認証したアプリケーションの Realm が、ほかのアプリケーションにも使われるJakarta Authentication のプロバイダー設定と、同じプロバイダーを使うアプリケーションの数
CVE-2026-86248(Moderate)OpenSSL-FFM を使用し、CLIENT_CERT 認証で OCSP の soft-fail を無効化一部のシナリオで CLIENT_CERT 認証が想定どおり失敗しないTLS 実装の種類と OCSP の設定
CVE-2026-73581(Moderate)OpenSSL または OpenSSL-FFM の TLS 実装で、証明書を keystore で構成し、CRL を使用CRL が無視されるTLS 実装の種類、Certificate 要素の指定形式、CRL の設定
CVE-2026-86243(Important)Tomcat Native による TLS ハンドシェイクバッファーの過剰読み取りにより JVM がクラッシュし、DoS に至るNative の読み込み状況と、TLS を処理する Connector
CVE-2026-86247(Important)Tomcat Native を使用する一部の構成競合状態により、クライアント証明書の検証要件が格下げされるNative の読み込み状況と、クライアント証明書の検証設定
CVE-2026-86246(Moderate)Tomcat Native の既定の OpenSSL オプションクライアント起点の再ネゴシエーションなど、安全でないオプションが既定で有効になっているNative の読み込み状況

Tomcat 本体の問題と Native の問題は、更新対象が異なります。CVE-2026-73581 と CVE-2026-86248 は本体側の問題で、Native を使わず Java の FFM API で OpenSSL を利用する構成(OpenSSL-FFM)も対象に含まれます。つまり、Native を使っていないことは Native の 3 件を非該当とする材料になりますが、OpenSSL-FFM を使う構成では本体側の TLS 関連 CVE の確認が残ります。

対応判断が変わる影響の違い

表に挙げた影響は、性質によって確認の優先度が変わります。

認可・認証の迂回(CVE-2026-76183、CVE-2026-75973)

本来は拒否されるべきアクセスが通る種類です。保護されている前提の機能が、制約のない状態で利用される可能性があります。

証明書検証への影響(CVE-2026-73581、CVE-2026-86248、CVE-2026-86247、CVE-2026-86246)

失効済みの証明書や、要件を満たさないクライアントが受け入れられる可能性があります。正常な業務通信には影響が出ないため、異常に気付きにくい点に注意が必要です。

リクエストやメッセージの混同(CVE-2026-86350、CVE-2026-77762、CVE-2026-87022)

ヘッダー、トレーラー、メッセージが、意図しないリクエストや WebSocket の通信に混入する種類です。複数の利用者の通信が同じ接続や処理に集まる HTTP/2 や WebSocket で問題になります。

可用性への影響(CVE-2026-86243、CVE-2026-77791、CVE-2026-79677、CVE-2026-78383、CVE-2026-78437、CVE-2026-77756)

影響の範囲は CVE ごとに異なります。CVE-2026-86243 は JVM のクラッシュで、同じプロセス上のすべてのアプリケーションに及びます。一方、CVE-2026-78383 は AJP の処理スレッドの占有、CVE-2026-78437 と CVE-2026-77756 は別ユーザーのリクエスト 1 件の失敗と説明されています。

すべてを一律にサーバー全体の停止として扱うのではなく、公式に示された影響の範囲で評価することをおすすめします。

前段で TLS を終端している場合の確認

ロードバランサーやリバースプロキシで TLS を終端していても、それだけで Tomcat が対象外になるとは限りません。確認したいのは、前段から Tomcat までの区間です。

  • 前段から Tomcat へ TLS で再暗号化している場合は、Tomcat 側の TLS 実装がハンドシェイクを処理するため、Native や OpenSSL-FFM に関係する CVE の確認対象になります。
  • クライアント証明書を前段で検証せず、Tomcat まで透過させている場合は、証明書検証に関係する CVE が該当し得ます。
  • 前段と Tomcat の間を HTTP/2 や AJP で接続している場合は、それぞれの CVE の確認対象です。CVE-2026-77756 は、リバースプロキシ配下にあることが成立条件に含まれています。
  • 前段を経由せずに Tomcat のポートへ直接到達できる経路がないかも、あわせて確認します。

特定の機能を使っていないことによる非該当の判断は、その機能に関係する CVE に限られます。たとえば AJP を使っていない環境でも、WebSocket や HTTP/2 の CVE は別途確認が必要です。

稼働構成を確認する手順

確認の基準は、ディスク上のファイルではなく、実際に稼働しているプロセスです。server.xmlに記述があってもコメントアウトされている場合や、同じサーバーで複数のインスタンスが動いている場合があるため、プロセスから順にたどる方法をおすすめします。

手順
稼働中の Tomcat プロセスを洗い出す

Linux では、プロセスの起動引数からインスタンスごとの catalina.home と catalina.base を確認できます。

ps -ef | grep '[o]rg.apache.catalina.startup.Bootstrap'

出力の -Dcatalina.home はバイナリの場所、-Dcatalina.base は設定ファイルとログの場所を示します。以降の確認は、PID とインスタンスの組み合わせごとに行います。あわせて、対象 PID の起動時刻を記録しておきます。

ps -o pid,lstart,args -p <PID>

起動引数で -Dcatalina.base を確認しても、作業用シェルの $CATALINA_BASE が自動で設定されるわけではありません。以降のコマンドの <CATALINA_BASE> の部分は、起動引数で確認した対象インスタンスの実パスに置き換えて実行することをおすすめします。別インスタンスのパスや、シェルに残っていた古い値を使うと、無関係なログや設定を確認してしまうおそれがあります。

手順
本体の稼働バージョンを確認する

稼働中のバージョンは、VersionLoggerListener が起動時に出力するログで確認できます。ただし、ログファイルには過去の起動の記録も残っています。検索結果の最後の一致が、現在のプロセスの起動に対応するとは限りません。

grep -n "Server number" <CATALINA_BASE>/logs/catalina.*

一致したすべての行について、ファイル名とタイムスタンプを確認します。そのうえで、手順 1 で記録した起動時刻に対応する起動記録を特定し、その範囲に含まれる Server number の値を稼働バージョンとして扱います。ログの出力先は構成によって異なるため、logs ディレクトリーに見当たらない場合は systemd のジャーナル等を起動時刻で絞り込んで確認します。

現在の起動に対応する記録が見つからない場合は、稼働バージョンを「未確認」として扱い、過去の起動記録を根拠に更新完了と判断しないことをおすすめします。ログのローテーションや削除で記録が失われている場合も同様です。

表示言語の設定によっては、項目名が翻訳されて出力される場合があります。一方、bin/version.sh(Windows は version.bat)や catalina.sh version は、ディスク上の lib/catalina.jarの情報を表示します。ファイルを入れ替えた後に再起動していない場合は稼働中のバージョンと一致しないため、起動ログとあわせて判断します。

手順
有効な Connector と TLS 実装を確認する

$CATALINA_BASE/conf/server.xmlで、コメントアウトされていない Connector と TLS の設定を確認します。

  • HTTP/2: Connector 内の <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
  • AJP: protocol 属性に AJP/1.3、org.apache.coyote.ajp.AjpNioProtocol、org.apache.coyote.ajp.AjpNio2Protocol のいずれかを指定した Connector。公式ドキュメントでは実装クラスの直接指定や独自実装も使用できるとされているため、AJP/1.3 の記述がないことだけで AJP 未使用とは判断しません
  • TLS 実装: Connector の sslImplementationName 属性、または Server 直下の AprLifecycleListener(Native)と OpenSSLLifecycleListener(FFM)

Tomcat 11 の公式ドキュメントでは、Native を使う実装を org.apache.tomcat.util.net.openssl.OpenSSLImplementation、FFM を使う実装を org.apache.tomcat.util.net.openssl.panama.OpenSSLImplementation として区別しています。実装を明示せず自動選択させている場合、Native の読み込み状況によって実際の TLS 実装が変わるため、次の手順の確認が必要です。設定に加えて、実際の待ち受けポートも確認します。

ss -lntp | grep java
手順
Tomcat Native の読み込み状況を確認する

Native が読み込まれると、起動ログに AprLifecycleListener のメッセージとして Native のバージョンが出力されます。Tomcat Native の公式ドキュメントでは、Loaded Apache Tomcat Native library [2.0.7] using APR version [1.7.3]. という出力例が示されています。

grep -n "Tomcat Native library" <CATALINA_BASE>/logs/catalina.*

本体と同じく、手順 2 で特定した現在の起動記録の範囲にある行だけを判断に使います。今回の起動では Native が読み込まれていなくても、過去の起動時の Loaded の行が検索結果に表示される場合があるためです。現在の起動記録の範囲に該当する行がなければ、その記録だけでは Native の読み込みを確認できません。

Linux では、稼働中のプロセスが実際にマッピングしている共有ライブラリも確認できます。こちらは現在のプロセスの状態を示すため、過去のログと混同せずに、どのファイルが読み込まれているかを判断する材料になります。

grep tcnative /proc/<PID>/maps

ここで表示されるのはライブラリのファイルパスで、バージョンは現在の起動記録やファイルの提供元の情報とあわせて確認します。現在の起動記録とプロセスの状態のどちらからも確認できない場合、Native の読み込み状況とバージョンは「未確認」として扱います。

Native のライブラリは、Tomcat のディレクトリーだけでなく、OS のパッケージや LD_LIBRARY_PATH、Windows の PATH 上から読み込まれる場合があります。

手順
アプリケーションが使う機能を確認する

WebSocket や Jakarta Authentication はアプリケーション側で利用されるため、server.xmlだけでは判断できません。アプリケーションの担当者や開発元に、次の点を確認します。

  • WebSocket エンドポイントの有無と、セキュリティ制約による保護の有無
  • WebSocket の per-message-deflate の利用有無
  • Jakarta Authentication のプロバイダー構成と、同じプロバイダーを使うアプリケーションの数
  • CLIENT_CERT 認証、OCSP、CRL の利用有無

組み込み Tomcat・コンテナー・製品同梱版の確認

Spring Boot などの組み込み Tomcat、コンテナーイメージ、業務パッケージに同梱された Tomcat は、利用者が本体だけを差し替えられない場合があります。アプリケーションや製品の提供元には、次の点を確認することをおすすめします。

  • 同梱されている Tomcat(tomcat-embed-core などのライブラリを含む)と Tomcat Native のバージョン
  • 今回の 15 件への該当有無と、修正を含むリリースの提供予定
  • 上流の修正をバックポートしている場合、その対象となる CVE の範囲
  • 本体と Native を同時に更新する必要がある構成かどうか

製品によっては、上流とは異なるバージョン番号のまま修正を取り込んでいる場合があります。上流のバージョン番号だけで、バックポートによる修正の有無を断定しないことをおすすめします。提供元の公式アナウンスに、対象の CVE が明記されているかを確認します。組み込み Tomcat では server.xmlが存在せず、Connector や HTTP/2 の設定がアプリケーションの設定やコードに含まれる点にも注意が必要です。コンテナーでは、イメージを更新した後も古いイメージのコンテナーが稼働し続けていないかを確認します。

更新手順と適用後の確認

公式の対処は修正版への更新です。Apache はバイナリパッチを提供しておらず、今回の各系列のセキュリティページには、更新以外の回避策は記載されていません。

更新の進め方

手順
更新対象を確定する

インスタンスごとに、本体の系列、Native の有無、TLS 実装、利用機能を整理し、早見表から更新先を決めます。

手順
本体と Native を同じ作業枠で入れ替える

Native を読み込んでいる場合は、本体と Native の組み合わせを最小要件に合わせます。9.0 系と Native 1.3 系は 2027 年 3 月 31 日にサポート終了予定のため、あわせて移行計画を確認しておくことをおすすめします。

手順
再起動・再デプロイする

ファイルを入れ替えただけでは、稼働中のプロセスは変わりません。組み込み Tomcat やコンテナーでは、アプリケーションの再ビルドと再デプロイまでを更新作業に含めます。

手順
実稼働バージョンと回帰を確認する

再起動後の PID と起動時刻を確認し、その起動に対応するログの範囲で本体と Native のバージョンを確認します。あわせてプロセスが読み込んだライブラリを確認したうえで、後述の確認項目に沿って回帰確認を行います。

なお、CVE-2026-86246 の修正は、クライアント起点の再ネゴシエーションなどの安全でないオプションを既定で有効にしていた問題への対処です。更新後は、これらの動作に依存する古いクライアントや連携システムの接続に影響が出る可能性があります。これは編集部の推論であり実機では確認していないため、検証環境での事前確認をおすすめします。

適用後に確認したい項目

次の表は編集部が整理した確認観点の例で、実機で検証した手順ではありません。正常な業務通信が成功することに加えて、認可やクライアント証明書認証を使う環境では、拒否すべきアクセスが拒否されることも確認することをおすすめします。

利用機能成功を確認する通信拒否を確認する通信
共通更新後の起動に対応するログで、本体が修正版以上、Native が 2.0.16/1.3.9 以上であること(対応する記録がなければ未確認として扱う)—
WebSocket認証済みユーザーの接続、メッセージの送受信、切断未認証または権限のないユーザーによる、保護対象エンドポイントへの接続
HTTP/2HTTP/2 での画面表示と API の呼び出し—
AJP前段経由の GET と POST(ボディのない要求を含む)前段以外からの AJP ポートへの接続
クライアント証明書認証有効な証明書による接続失効済みの証明書(CRL/OCSP)、証明書なし、要件を満たさない証明書による接続
Jakarta Authentication各アプリケーションで、その Realm に登録されたユーザーが認証され、設計どおりの権限でアクセスできることアプリケーション A の Realm では有効だが、B の Realm では認証されない、または B に必要な権限を持たないテストユーザーで、B へのアクセスが拒否されること
TLS(Native)業務クライアントと連携システムからの接続—

Jakarta Authentication の確認では、同じユーザーが複数のアプリケーションを利用できる設計であれば、別のアプリケーションへのアクセス成功は正常な結果です。CVE-2026-75973 で問題になるのは、意図しない別のアプリケーションの Realm が使われることです。このため、設計上拒否されるべき組み合わせのテストユーザーを用意し、拒否が「B の Realm で認証されなかった」ことによるものか、「認証後に B の権限判定で拒否された」ことによるものかを区別して確認することをおすすめします。

すぐに更新できない場合の暫定対策

公式の回避策は示されていないため、次の表は編集部が整理した到達制限の考え方です。いずれも脆弱性を解消するものではなく、更新までの露出を減らす手段にとどまります。

対象暫定対策の案適用対象と限界
AJP使っていない AJP Connector を無効化するAJP を使っていない環境に限られます
AJP前段のプロキシ以外から AJP ポートへの到達を遮断するCVE-2026-78383 はエンドユーザーがボディを送らない要求で成立すると説明されているため、前段経由の要求は防げない可能性があります
WebSocket使っていないパスへの Upgrade 要求を前段で遮断するTomcat へ直接到達できる経路がある場合は効果がありません
HTTP/2Connector から Http2Protocol の定義を外す通信は HTTP/1.1 に戻るため、性能やクライアントへの影響を確認する必要があります
Tomcat NativeTLS 実装を JSSE へ切り替えるOCSP を使っている場合は失効確認が機能しなくなります(下記の引用を参照)

参考: Apache Tomcat 11 SSL/TLS Configuration How-To
“OCSP is not supported if the org.apache.tomcat.util.net.jsse.JSSEImplementation is used”
(org.apache.tomcat.util.net.jsse.JSSEImplementation を使用する場合、OCSP はサポートされない)
https://tomcat.apache.org/tomcat-11.0-doc/ssl-howto.html

暫定対策を適用した場合も、設定変更の内容と解除の条件を記録し、修正版への更新を優先して計画することをおすすめします。

まとめ

2026 年 9 月に公表された Apache Tomcat の脆弱性 15 件は、利用機能によって関係の有無が変わるため、CVE の件数よりも自環境の構成を基準に判断することが重要です。対応の基本は本体と Tomcat Native の修正版への更新で、判断と完了確認は稼働中のプロセスで行います。

  • 2026 年 9 月の公表分は本体 12 件と Tomcat Native 3 件の計 15 件
  • 本体は 11.0.26、10.1.60、9.0.122 以降への更新が基本の対応
  • Native を読み込む環境では 2.0.16 または 1.3.9 以降への同時更新
  • 影響の開始バージョンは CVE ごとに異なり、一律ではない。
  • 4 月や 5 月の修正版でも CVE-2026-86248 と 86350 の対象になり得る。
  • 判断の基準は設定ファイルではなく稼働プロセスの構成
  • 更新後は拒否すべきアクセスが拒否されることも確認する。

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次