Apache Tomcatの脆弱性8件(10月20日公表)、応答の取り違えや認証回避のおそれ。使い方ごとの対象と修正版
CVE-2026-101356Javaで書いたWebアプリを動かすApache Tomcatで、8件の脆弱性が2026年10月20日にApache Software Foundation(ASF)から公表されました。HTTP/2で利用者の間の要求・応答が取り違えられるもの、LDAPを使う認証で正しいパスワードなしに認証できるものなどで、HTTP/2・JNDIRealm・AJPを使っているかで該当が分かれます。修正は10月12日に公開された11.0.27・10.1.61・9.0.123に入っています。
2026-11-01更新:一次情報(ASFのセキュリティ告知とメーリングリスト、CVEの記録、KEV、Maven Central、Spring Bootの文書)と照合して公開しました。
- ASFの重要度で「Important」は3件です。HTTP/2と非同期サーブレットでの取り違え(CVE-2026-101356)、JNDIRealmの認証回避(CVE-2026-101296)、11系のAJPでの取り違え(CVE-2026-103119)です。
- 修正版は系列ごとに11.0.27・10.1.61・9.0.123で、必要なJavaの版は同じ系列の中で変わりません。ASFの告知に、更新以外の回避策はありません。
- Spring Bootは4.0.9・4.1.2が11.0.27を使います。9.0系は2027年3月31日でサポートが終わり、その後は9.1系へ移ります。
01Tomcatの脆弱性8件で起きることと深刻度
ASFのセキュリティ告知は、8件のうち3件を「Important」、5件を「Low」としています。ASFはCVSSを付けていません。CVEの記録では、米CISAが補足としてCVSSを付けていて、Importantの3件はいずれも9.1です(CVE-2026-101296はCVSS 4.0、他の2件はCVSS 3.1)。[1][2][3][4][5]
どの件も、該当するかは使っている機能で決まります。件ごとの内容と、該当する使い方は次のとおりです。範囲は告知の記載で、系列によって対象外のものがあります。[1][2][3]
| CVE(ASFの重要度) | 起きること | 該当する使い方・系列 |
|---|---|---|
| CVE-2026-101356(Important) | 利用者の間で要求・応答が取り違えられる | HTTP/2と非同期サーブレット。11.0.22〜、10.1.55〜、9.0.118〜 |
| CVE-2026-101296(Important) | 正しいパスワードなしで認証できる | JNDIRealmをGSSAPI以外のSASLで設定。全系列 |
| CVE-2026-103119(Important) | 応答が次の要求に混ざり、内容が漏れるおそれ | 11系のAJP(11.0.0-M25〜) |
| CVE-2026-88041(Low) | 前の要求のトレーラーが次の要求に混ざる | HTTP/2 |
| CVE-2026-93446(Low) | TLS 1.3の接続がときどき失敗する | TLS 1.3 |
| CVE-2026-74048(Low) | FIPSモードの有効化に失敗しても起動する | OpenSSLLifecycleListenerでFIPSモードを指定 |
| CVE-2026-74049(Low) | リダイレクト後もページの処理が続く | JSPでJSTLの<c:redirect> |
| CVE-2026-80353(Low) | ローカルの利用者がUnixドメインソケットに接続できる | 9.0系のAPR/Nativeコネクタ |
HTTP/2・JNDIRealm・AJPのどれを使うかで、起きることが分かれる
ASFがImportantとした3件を並べる。
Apache Tomcat 11.0.26・10.1.60・9.0.122以前
出典 Apache Tomcat「Apache Tomcat 11.x・10.x・9.x vulnerabilities」(2026-10-20)
02TomcatでHTTP/2・JNDIRealm・AJPを使っているかの確かめ方
単体のTomcatでは、HTTP/2はコネクタの中にHttp2Protocolを書いたときに有効になります。配布物のserver.xmlでは、HTTP/2を使う例とAJPのコネクタはどちらもコメントになっています。[6][7]
Spring Bootの組み込みTomcatでは、HTTP/2はserver.http2.enabledで有効にし、初期値は無効です。[8]
CVE-2026-101356は版の範囲が新しく、たとえば9.0系では9.0.118〜9.0.122だけが対象です。古い版はこの件の対象外でも、JNDIRealmの件(CVE-2026-101296)は全系列が対象です。この件はauthentication属性にGSSAPI以外のSASLの方式を指定している場合が該当します。[1][9]
03悪用の状況
2026年11月1日時点で、米国のCISAが公開している「悪用が確認された脆弱性の一覧(KEV)」には載っていません。
PoCの公開は、ASFの告知とCVEの記録では確認できていません。CVEの記録のCISAの評価(SSVC)では、8件とも悪用は「none」です。
修正版は公表より前の10月12日に出ていて、KEVには載っていない
2026年10月12日
10月20日
10月22日
11月1日
2027年3月31日
出典 Apache Tomcat「Apache Tomcat 11.x・10.x・9.x vulnerabilities」(2026-10-20)、米CISA「Known Exploited Vulnerabilities Catalog」(2026-10-30版)、Apache Tomcat「End of support for Apache Tomcat 9.0.x」(2026-02-11)
04Tomcatの系列ごとの修正版とサポート終了の版
修正版は10月12日にASFから公開され、Maven Centralにも置かれています。脆弱性の公表(10月20日)より前に出ているので、すでに11.0.27・10.1.61・9.0.123以降に上げていれば、8件の修正は入っています。必要なJavaの版は系列ごとに決まっていて、同じ系列の中の更新では変わりません。[10][11]
| 系列 | 修正版 | 必要なJava |
|---|---|---|
| 11.0 | 11.0.27 | 17以上 |
| 10.1 | 10.1.61 | 11以上 |
| 9.0 | 9.0.123 | 8以上 |
| 8.5・7.0 | なし(サポート終了) | ― |
CVEの記録は、サポートが終わった8.5系・7.0系も、JNDIRealmの件とJSTLの件の対象だとしています。修正版は出ないので、サポート中の系列へ移ります。[4]
修正版は11.0.27・10.1.61・9.0.123で、8.5系・7.0系には出ない
出典 Apache Tomcat「Which Version Do I Want?」(2026-11-01確認)、Apache Tomcat「Apache Tomcat 11.x・10.x・9.x vulnerabilities」(2026-10-20)、Maven Central「spring-boot-dependencies 4.0.9・4.1.2・3.5.16」(2026-10-22)
05Tomcatの版と設定を確認・更新する手順
単体のTomcatは、版を表示して系列と番号を確かめます(Windowsでは
version.bat)。ターミナル$CATALINA_HOME/bin/version.shアプリに組み込んだTomcat(Spring Bootなど)は、依存関係から版を確かめます。Gradleでは
./gradlew dependencyInsight --dependency tomcat-embed-coreです。ターミナルmvn dependency:tree -Dincludes=org.apache.tomcat.embedserver.xmlで、HTTP/2・AJP・JNDIRealm・Unixドメインソケット・FIPSモードの設定があるかを確かめます。コメントの中の行も表示されるので、有効な設定かを見分けます。
ターミナルgrep -n -E "Http2Protocol|AJP/1.3|JNDIRealm|unixDomainSocketPath|FIPSMode" $CATALINA_BASE/conf/server.xmlSpring Bootでは、HTTP/2を有効にしているかを設定ファイルで確かめます。
ターミナルgrep -rn "server.http2.enabled" src/main/resources/Spring Bootの3.5系で、すぐに4系へ上げられない場合は、組み込みTomcatの版を指定します。指定後はテストで動作を確かめます。
pom.xml<properties> <tomcat.version>10.1.61</tomcat.version> </properties>更新して再起動したあと、もう一度版を確かめます。
ターミナル$CATALINA_HOME/bin/version.sh
06すぐ上げられないとき
ASFの告知に、更新以外の回避策はありません。表の使い方に当てはまらなければその件の経路から外れますが、これは当社の整理で、ASFが示した回避策ではありません。JNDIRealmの件は認証に関わるので、該当する設定がある場合は更新を先にします。[5]
07Spring Bootの組み込みTomcatの版
Spring Bootは、使うTomcatの版を依存関係の一覧(spring-boot-dependencies)のtomcat.versionで決めています。Maven Centralの記載では、10月22日に公開された4.0.9と4.1.2が11.0.27を使います。[12]
3.5系の最後の公開版3.5.16は10.1.55を使っていて、CVE-2026-101356とCVE-2026-101296の範囲に入ります。3.5系の無償サポートは2026年6月30日に終わっています。4系へ上げられない間は、tomcat.versionで10.1.61を指定できますが、Spring Bootの文書は、版を上書きすると互換性の問題が起きることがあると注意しています。[12][13][14]
089.0系のサポート終了と9.1系への移行
ASFは、9.0系のサポートを2027年3月31日で終えると告知しています。その後は脆弱性の報告が9.0系に照らして確かめられなくなります。最後の9.0系の公開は3月31日の少し前の予定です。[15]
同じ時期に9.1系の公開が始まり、2030年12月31日まで続きます。9.0系との違いは小さく、HTTP・HTTPS・AJPのAPR/Nativeコネクタが無くなる点です。APR/Nativeコネクタを使っている場合は、NIOのコネクタへの移行が勧められています。CVE-2026-80353はこのAPR/Nativeコネクタの件です。[3][15]
脆弱性の公表・更新一覧で、Java / JVMの関連情報を調べることもできます。

よくある質問
CVSSが9.1なのに、ASFは「Important」なのはなぜですか?
評価者が違います。9.1は米CISAがCVEの記録に補足として付けた値で、ASFは独自の4段階の重要度を使っています。どちらも、成立の条件に当てはまるかを読んで判断します。[4][5]
9.0.110を使っています。対象ですか?
CVE-2026-101356の範囲(9.0.118〜9.0.122)には入りません。ただしJNDIRealmの件(9.0.0.M1〜9.0.122)などの範囲には入るので、9.0.123に上げます。[3]
悪用は確認されていますか?
8件とも、10月30日版のKEVには載っていません。CVEの記録のCISAの評価でも、悪用は「none」です。過去のTomcatの脆弱性では、CVE-2025-24813とCVE-2026-34486がKEVに載っています。[4][16]
LinuxのOSのパッケージで入れたTomcatはどうしますか?
OSの配布元は修正を元の番号のまま取り込むことがあります。番号の頭だけで判断せず、配布元の告知に書かれたパッケージの版と照らし合わせます。
出典・参考資料
- Apache Tomcat公式:Apache Tomcat 11.x vulnerabilities2026-10-20 / 11系の7件の内容、重要度、範囲、報告日・公表日
- Apache Tomcat公式:Apache Tomcat 10.x vulnerabilities2026-10-20 / 10.1系の6件の内容、重要度、範囲
- Apache Tomcat公式:Apache Tomcat 9.x vulnerabilities2026-10-20 / 9.0系の7件の内容、重要度、範囲(CVE-2026-80353を含む)
- CVEの記録:CVE-2026-101296(採番機関Apache)2026-10-20 / 8.5系・7.0系への影響、CISAのCVSS 4.0 9.1とSSVC(悪用none)。他の7件の記録も同じ形
- ASF:[SECURITY] CVE-2026-101356 Apache Tomcat2026-10-20 / 重要度Important、対象、更新だけを示した対処
- Apache Tomcat公式:The HTTP2 Upgrade Protocol2026-11-01確認 / HTTP/2をコネクタのUpgradeProtocolで有効にすること
- Apache Tomcat:11.0.27の配布物のserver.xml2026-11-01確認 / HTTP/2の例とAJPのコネクタが初期状態でコメントであること
- Spring Boot公式:Common Application Properties2026-11-01確認 / server.http2.enabledの初期値がfalse
- Apache Tomcat公式:The Realm Component(JNDIRealm)2026-11-01確認 / authentication属性の指定方法
- Apache Tomcat公式:Which Version Do I Want?2026-11-01確認 / 系列ごとの最新版と必要なJava、サポート終了の系列
- Maven Central:tomcat-embed-core2026-11-01確認 / 11.0.27・10.1.61・9.0.123の公開
- Maven Central:spring-boot-dependencies 4.0.9・4.1.2・3.5.162026-10-22(4.0.9・4.1.2) / 各版のtomcat.version(11.0.27・11.0.27・10.1.55)
- Spring:Spring Bootのサポート期間(api.spring.io)2026-11-01確認 / 3.5系の無償サポート終了日(2026-06-30)
- Spring Boot公式:Using the Plugin(依存の版の上書き)2026-11-01確認 / プロパティで依存の版を上書きする方法(Gradleは同じく managing-dependencies に互換性の注意)
- Apache Tomcat公式:End of support for Apache Tomcat 9.0.x2026-02-11 / 9.0系のサポート終了日、9.1系の期間と違い、APR/Nativeコネクタの移行
- 米CISA:Known Exploited Vulnerabilities Catalog(Apache Tomcat)2026-10-30版 / 8件の掲載が無いこと、CVE-2025-24813・CVE-2026-34486の掲載
あわせて読みたい記事
snappy-javaの脆弱性CVE-2026-93451、型付き配列への展開でヒープ破壊のおそれ。Kafka・Sparkの下で古い版が残る場合の確かめ方
Java向けの圧縮ライブラリsnappy-javaの脆弱性CVE-2026-93451(GHSA-gwq9-9ffj-mvrv)は、uncompressIntArrayなどで配列の末尾を越えて書き込みます。上げる先は1.1.10.10以上です。Kafka・Spark・Hadoopが古い版を指定している場合の確かめ方と、版の指定の仕方を説明します。
PHPのWindows版のBrotliの脆弱性、8.5.12-1などへの入れ替えとcURL・Guzzleの確かめ方(CVE-2026-111497)
PHPのWindows版に同梱のBrotliの脆弱性CVE-2026-111497は、米CISAが悪用を確認しています。10月21日の版も対象のままである理由、GuzzleやWordPressで自動展開が有効になる条件、8.5.12-1などへの入れ替えと確かめ方を説明します。
Brotliの脆弱性の確認方法、PythonとNode.jsで対象かを確かめて直す(CVE-2026-111497、コード実行のおそれ)
圧縮形式Brotliの展開処理の脆弱性CVE-2026-111497(HTTP2Shell)は、米CISAが悪用を確認しています。Pythonのbrotli・brotlicffi、Node.jsの同梱版などで、自分の版と構成が対象かを確かめる方法と修正版を、言語ごとに説明します。