このドキュメントは 2026 年 6 月 22 日にリリースされた Tomcat 11.0.23 のリリースノートの日本語訳です。
ダウンロードは Tomcat ダウンロードより行えます。
以下はリリースの詳細と、最新情報およびドキュメントを補足するその他情報について記載しています。
脆弱性修正
* デフォルトサーブレットに設定されたセキュリティ制約で、HTTP メソッドおよびメソッド除外設定が無視される脆弱性が修正されました。(CVE-2026-55956)
* EncryptInterceptor がリプレイ攻撃から保護されていない脆弱性が修正されました。(CVE-2026-55955)
* ログに出力される有効な web.xml に、特殊ロールおよび空の認可制約が含まれない問題が修正されました。(CVE-2026-55276)
* FFM Connector で無効な CRL が設定された場合に、設定エラーとならず無効な証明書が受け入れられる可能性がある脆弱性が修正されました。(CVE-2026-53434)
* Apache Tomcat の RewriteValve において、OR 条件の連鎖で最初の条件に一致した場合に、それ以降の OR 以外の条件が評価されず、リライト処理が成功してしまう脆弱性がありました。(CVE-2026-53404)
*ワイルドカードを使用したプロパティマッピングにより、本来は内部でのみ使用されるプロパティがクライアントに公開され、XSS 攻撃が可能となる脆弱性が修正されました。(CVE-2026-50229)
不具合修正 (Catalina)
* OpenSSLLifecycleListener で OpenSSL の初期化に失敗した場合のログレベルが debug に変更されました。これにより、libssl.so が存在しない環境でスタックトレースが出力されなくなり、isAvailable() の動作が AprLifecycleListener と統一されるとともに、ネイティブライブラリが存在しない場合でも適切に処理されるようになりました。
* Cookie.clone() 実行時に、内部属性マップが複製されない問題が修正されました。(70038)
* 無効な SPNEGO トークンの処理が改善されました。
* 初期化されていないプロトコル使用時に、Connector クラスで NullPointerException が発生することがある問題が修正されました。
* セッションの平均有効期間の計算が正しくない問題が修正されました。
* 実行中の Pipeline に対して Pipeline.setBasic を使用する際の安定性が向上しました。
* フィルター定義で競合が検出された場合に、サーブレット仕様に従い、サーブレットと同様に初期化パラメーターが更新される問題が修正されました。
* 一部のケースで、コンテナーイベントのクリーンアップが正しく行われない問題が修正されました。
* ExpiresFilter で、サーブレットが addDateHeader を使用している場合に Last-Modified ヘッダーを確認し、誤って設定済みと判定される問題が修正されました。
* ExpiresFilter で使用される時間単位が誤っていた問題が修正されました。
* DataSourceStore で例外が握りつぶされる問題が修正されました。これにより FileStore と動作が統一され、エラー発生時のセッション消失が防止されます。
* DateFormatCache で、一重引用符によるエスケープリテラルおよび引用符付きリテラルを処理できるようになりました。
* JAAS のログアウト時に、JAAS の仕様に従い、コミット時に追加されたロールプリンシパルが Subject から削除されるようになりました。
* MemoryRealm で、設定にロールが指定されていない場合にダミーロールが追加される問題が修正されました。
* DataSourceUserDatabase で、存在しないユーザーに対して null の Principal が返されるようになりました。
* WebDAV の共有ロックの有効期限処理が修正されました。
* Persistent Manager 使用時に、セッション有効期限の統計情報が不正確になる問題が修正されました。
* UTF-32 でエンコードされたファイルを配信する際に、BOM がスキップされるようになりました。
* storeconfig で、WrapperListener 要素と WrapperLifecycle 要素が入れ替わる問題が修正されました。
* DataSourceUserDatabase で、変更されたユーザー情報が正しく処理されない問題が修正されました。
* Web アプリケーションクラスローダーが親クラスローダーと同様の動作となり、リソース検索時に無効なパスによるエラーが発生した場合でも、リソースが存在しないものとして適切に処理されるようになりました。(70049)
* Range および Content-Range パーサーの検証が改善され、不正な Range 指定では 500 エラーではなく 4xx エラーが返されるようになりました。
* ProxyErrorReportValve で接続リークが発生する問題が修正されました。
* RewriteValve 使用時に、%{SSL:HTTPS} が httpd と同様に true / false ではなく on / off を返すようになりました。
* アプリケーションが前回のリクエストで変更したクエリ文字列パラメーターの文字エンコーディングが、次のリクエストへ引き継がれる問題が修正されました。
* CsrfPreventionFilter で URL をエンコードする際に、nonce が不要な URL へ nonce が付与される問題が修正されました。
* SSO Cookie の Partitioned 属性の設定に関する問題が修正されました。
* CombinedRealm の isAvailable 判定が修正され、少なくとも 1 つのサブ Realm が利用可能であれば認証できるようになりました。
* PersistentValve で、非同期リクエストが正しく処理されるようになりました。(70048)
* RequestDispatcher 使用時のクロスコンテキストディスパッチの検出が改善されました。
* プログラムまたは web.xml で設定した URL パターンが二重にデコードされる問題が修正されました。
* Rewrite 条件の ornext フラグ処理が、mod_rewrite の逐次評価方式に合わせて改善されました。
* デフォルトの web.xml のバージョンが、サポート対象の Servlet 仕様のバージョンに合わせて更新されました。
* ProxyErrorReportValve の useRedirect 属性のデフォルト値が true から false に変更されました。
* catalina-tribes.jar が存在せず、catalina-ha.jar のみ存在する状態で server.xml の Cluster 要素を有効にした場合に、起動時に NoClassDefFoundError が発生する問題が修正されました。
* WebDAV でリソースをコピーする際に発生する可能性があるデッドロックが修正されました。
* SSI 変数およびリクエスト属性の予約済みプレフィックスに、jakarta.、org.apache.catalina.、org.apache.tomcat. が追加されました。
* Servlet 登録時の addMapping 処理で URL デコードが行われない問題が修正されました。
* WebDAV の Timeout ヘッダーで、RFC に従ってカンマ区切りの値が指定できるようになりました。複数の値が指定された場合は、最初に利用可能な値が使用されます。
* Web アプリケーションの有効な web.xml をログ出力する際の複数の問題が修正されました。空のセクションは出力されなくなり、特殊ロールおよび空の認可制約が出力されるようになりました。
* MemoryUserDatabase の保存処理で書き込みロックの範囲が拡張され、ファイル保存時の並行処理問題が防止されました。
* FileStore でセッション情報がアトミックに保存されるようになりました。
* デフォルトサーブレットにマッピングされたセキュリティ制約で設定された HTTP メソッドが無視される問題が修正されました。
不具合修正 (Coyote)
* OpenSSL ベースのコネクターで Tomcat Native を使用する際、TLS グループが設定されている場合は、OpenSSL のデフォルトではなく設定済みの TLS グループが使用されるようになりました。
* HTTP/2 で、コンテナーが関連するストリームをリセットした場合に、処理中のリクエストボディの読み取りがキャンセルされるようになりました。これにより、受信データがないことが判明している場合に、読み取りタイムアウトを待機する遅延が発生しなくなりました。
* HTTP/2 の不正なメッセージについて、ストリームリセットを行うべき場合に接続全体を切断するのではなく、ストリームリセットが実行されるようになりました。
* HTTP/2 のヘッダートレーラー許可リストの適用が改善されました。
* HTTP/2 でヘッダーフレームが処理されない場合に NullPointerException が発生する問題が修正されました。(70050)
* NIO ポーラースレッドで pollerThreadPriority が正しく使用されるようになりました。
* MessageByte.equals が null の MessageByte に対して呼び出された場合の問題が修正されました。
* JSSE でサーバーキーを取得する際に、委譲先の Key Manager が正しく呼び出されるようになりました。
* Asn1Parser でオーバーフローが発生する可能性がある問題が修正されました。
* Http2Protocol に allowSchemeMismatch 属性が追加されました。この属性を使用すると、ユーザーエージェントから提供されるスキームの整合性チェックをスキップできるようになります。(70091)
* isTrailerFieldsReady が常に true を返していた問題が修正されました。
* OpenSSL/Panama TLS 実装が他の TLS 実装と同等の動作となり、指定された CRL の読み込み時にエラーが発生した場合は例外がスローされるようになりました。
* OpenSSL 形式の暗号スイート指定で @STRENGTH が含まれている場合に、その後の指定が無視される問題が修正されました。
* HTTP/2 のペイロード長が、ヘッダーで指定されたフラグに必要なデータ長より不足している場合を正しく処理するようになりました。
* FFM コネクターで setSessionTicketKeys を呼び出す際に、セッションチケットキーのサイズが正しく判定されるようになりました。(70102)
* TLS 1.3 の Post-Handshake Authentication が修正されました。OpenSSL 1.1.1 から 3.0.0 への仕様変更により動作しなくなっていた問題が解消されました。(69988)
* OpenSSL の暗号スイート指定を処理する際に、生成される暗号スイートの順序が OpenSSL と完全に一致するようになりました。
不具合修正 (Jasper)
* EL の引数に null が設定された場合に、不一致が発生することがある問題が修正されました。
* TagPluginManager のスレッドセーフ性が改善されました。
* JSP の include 処理で flush が正しく実行されるようになりました。
不具合修正 (Cluster)
* トラストストアを設定せずにクラウドメンバーシップを構成した場合のログメッセージが改善されました。この構成ではすべての証明書が信頼されることが、より分かりやすく表示されるようになりました。
* Channel Coordinator の設定時に、リスナーが正しく追加および削除されるようになりました。
* FragmentationInterceptor の並行処理に関する問題が修正されました。
* OrderInterceptor の並行処理に関する問題が修正されました。
* TwoPhaseCommitInterceptor の並行処理に関する問題が修正されました。
* CloudMembershipProvider 実装で MD5 ダイジェストを生成する際の並行処理に関する問題が修正されました。
不具合修正 (WebSocket)
* AsyncChannelWrapperSecure の Future.isDone() が正しくない値を返す問題が修正されました。
* プログラムによるエンドポイントで Endpoint.onOpen() の呼び出しに失敗した場合に、標準の WebSocket エラー処理が実行されるようになりました。
* プログラムによるエンドポイントで Endpoint.onOpen() の呼び出しに失敗した場合に、メモリリークが発生する問題が修正されました。(70110)
* WebSocket 拡張機能のネゴシエーション時に、クライアントから無効なパラメーターが指定された場合は、接続を切断するのではなく、そのネゴシエーション要求のみが拒否されるようになりました。
不具合修正 (Web applications)
* Documentation: ocspSoftFail に関するドキュメントの説明およびデフォルト値の記載が修正されました。
* Manager サーブレットの JSON モードで、コンテキスト名が二重にエスケープされる問題が修正されました。
* Manager: Manager アプリケーションによる Web アプリケーションのリロード時に、自動デプロイによってアンデプロイが実行される問題が修正されました。
* Documentation: Connector の scheme 属性および secure 属性に関するドキュメントが改善されました。
不具合修正 (Other)
* Ant タスク実行時に、接続ごとの Authenticator が使用されるようになりました。
* クラスタリング用 JAR が起動時に存在しない場合に、ログメッセージが重複して出力される問題が修正されました。
機能追加・改良 (Catalina)
* アクセスログ出力で、リテラルの「%」文字を使用できるようになりました。
* SSI 処理エンジンから、通常の正規化チェックと重複していた不要なコードが削除されました。
* UserDatabase におけるユーザー、ロール、およびグループの作成動作が明確化されました。既存の要素は作成時に上書きされず、変更する場合は削除または更新を行う必要があります。
* JsonErrorReportValve および ProxyErrorReportValve で、showReport 属性に対応しました。false に設定すると、エラーレスポンスにメッセージ、説明、スタックトレースなどの詳細情報が表示されなくなります。
機能追加・改良 (Coyote)
* 暗号化された PEM ファイルで安全でない暗号化方式が使用されていることを検出した場合に、適切な警告が出力されるようになりました。
* Brainpool TLS グループに対応しました。
* Tomcat Native 2.x の最小バージョンおよび推奨バージョンが 2.0.15 に更新されました。
* Tomcat Native 1.x の最小バージョンおよび推奨バージョンが 1.3.8 に更新されました。
機能追加・改良 (Cluster)
* EncryptInterceptor にリプレイ攻撃対策が追加されました。この変更は EncryptInterceptor に対する互換性のない変更です。
機能追加・改良 (Web applications)
* Manager: Manager アプリケーションで、アップロードされたファイルが想定された保存先に配置されていることを確認するチェックが追加されました。
* Manager: Manager アプリケーションで、デプロイする WAR、ディレクトリ、またはディスクリプタファイルに指定されたコンテキストパスの妥当性を確認するチェックが追加されました。
* Documentation: CrawlerSessionManagerValve の一部属性に関するドキュメントが拡充されました。
機能追加・改良 (Other)
* Commons Daemon が 1.6.1 に更新されました。
* フランス語翻訳が改善されました。
* 日本語翻訳が改善されました。
* Tomcat Migration Tool for Jakarta EE の同梱バージョンが 1.0.12 に更新されました。
* Tomcat Native が 2.0.15 に更新されました。
詳細は以下をご覧ください。
https://tomcat.apache.org/tomcat-11.0-doc/changelog.html#Tomcat_11.0.23_(markt)
https://tomcat.apache.org/security-11.html#Fixed_in_Apache_Tomcat_11.0.23