Tomcat 8.5.99 のリリースノート

このドキュメントは 2024 年 2 月 19 日にリリースされた Tomcat 8.5.99のリリースノートの日本語訳です。
ダウンロードは Tomcat ダウンロードより行えます。
以下はリリースの詳細と、最新情報およびドキュメントを補足するその他情報について記載しています。

脆弱性修正

* サービス妨害 CVE-2024-23672: WebSocket クライアントが WebSocket の接続をオープンしたままとすることでリソースの消費を増大させることが可能になっていました。この問題が修正されました。この問題は Tomcat のバージョン 8.5.0 から 8.5.98 に影響します。(CVE-2024-23672)

* サービス妨害 CVE-2024-24549: HTTP/2 リクエスト処理中に、そのリクエストがヘッダについて設定されている制限の一つでも超えた場合、付随する HTTP/2 ストリームが、全てのヘッダが処理されるまでリセットされませんでした。この問題が修正されました。この問題は Tomcat のバージョン 8.5.0 から 8.5.98 に影響します。(CVE-2024-24549)

不具合修正(Catalina)

* ServiceBindingPropertySource が修正され、プロパティ値を含むファイルから、行末の \r\n のシーケンスを削除するよう設定されている場合は、正しく削除されるようになりました。

* デバッグログ出力の使い方が見直され、トレースやデータダンプ操作がデバッグレベルからトレースに引き下げられました。

* ApplicationHttpRequest および ApplicationRequest に対するリクエスト属性のアクセスの性能がさらに改善されました。(68089)

* 非同期処理中のエラーの後で非同期エラー処理がレスポンスを書き出せるようになりました。(68559)

不具合修正(Coyote)

* 非同期のエラー処理がより頑健になりました。一旦接続がクローズとマークされたなら、さらなる非同期処理はそのことを変更することはできないことが保証されます。

* 非同期のエラー処理がより頑健になりました。AsyncListener.onError() の呼び出しが一度コンテナに戻ったなら、コンテナのスレッドだけが AsyncContext にアクセスできることが保証されます。これは、アプリケーションスレッドが AsyncContext にアクセスし続けている場合に、そうなっていないと発生する様々な競合条件を抑止します。

* デバッグログ出力の使い方が見直され、トレースやデータダンプ操作がデバッグレベルからトレースに引き下げられました。特い、ほとんどの HTTP/2 デバッグログ出力がトレースレベルに変更されました。

* SSLHostConfigCertificate インスタンス上に設定されたユーザ提供の SSLContext インスタンスがサポートされました。

* Tomcat Native のシャットダウンプロセスが改善され、Tomcat シャットダウン時に JVM がクラッシュする可能性が小さくなりました。

* 68558 についての部分的修正: リクエスト URI、HTTP ヘッダ名、リクエスト Content-Type 値を String に変換した結果をキャッシュすることで、繰り返し行われる byte[] から String への変換が減り性能が改善されるようになりました。

* ヘッダ処理時のエラーを HTTP/2 クライアントにエラー報告する処理が、ヘッダの末尾ではなく、エラーが検知されたフレームの末尾で問題を報告することで改善されました。

* 一度ストリームがリサイクルされたなら、残っていたそのストリームへの参照が削除されるようになりました。これにより、そのストリームが早期にガベージコレクションの対象となり、スケーラビリティが改善されます。

不具合修正(Jasper)

* JSP インポートマップに最適なサイズとタイプが生成されるようになりました。(68546)

* デバッグログ出力の使い方が見直され、トレースやデータダンプ操作がデバッグレベルからトレースに引き下げられました。

不具合修正(WebSocket)

* 66508 の修正でのリグレッションが修正されました。このリグレッションにより、環境により UpgradeProcessor のリークが発生する可能性がありました。

* デバッグログ出力の使い方が見直され、トレースやデータダンプ操作がデバッグレベルからトレースに引き下げられました。

* サーバサイドが占有的なサスペンド/レジューム機能を使って接続をサスペンドした場合に WebSocket 接続がクローズされた場合、その WebSocket の接続の終了が完了することが保証されるようになりました。

機能追加・改良(Catalina)

* CSRF 抑止フィルターが何点か改善され、その一つに、リソース名とサブツリーURLパターンにノンスを追加することがスキップできるようになりました。

機能追加・改良(Web applications)

* サンプルアプリケーション RequestHeaderExample で JSON フォーマットのレスポンスがサポートされました。

機能追加・改良(Other)

* Checkstyle が 10.13.0 に更新されました。

* JSign が 6.0 に更新されました。

* デバッグレベルメッセージ用の文字列が追加されました。

詳細は以下をご覧ください。

https://tomcat.apache.org/tomcat-8.5-doc/changelog.html#Tomcat_8.5.99_(schultz)

https://tomcat.apache.org/security-8.html#Fixed_in_Apache_Tomcat_8.5.99