Tomcat 9.0.54 のリリースノート

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

脆弱性修正

* サービス妨害 CVE-2021-42340: バグ 63362 の修正によりメモリリークが生じていました。HTTP アップグレード接続のメトリック収集用に導入されたオブジェクトが、WebSocket 接続が一度クローズされるとその WebSocket 接続について解放されませんでした。これはメモリリークを発生させ、時間と共に、OutOfMemoryError によるサービス妨害を引き起こしていました。この問題が修正されました。(CVE-2021-42340)

不具合修正(Catalina)

* DataSourceUserDatabase のコンストラクタで、DataSource が提供されるようになりました。それが常にグローバルであるためです。

* DataSourceUserDatabase のオブジェクトの削除後の作成操作が修正されました。

* JNDI レルムを使用している際にメモリリークを引き起こす可能性のある JRE バグの回避策が実装されました。(65553)

* Web リソースの実装でアーカイブファイルの検索性能を改善するために使用されるブルームフィルタが修正され、ディレクトリ検索の際、指定されたディレクトリ名に末尾の ‘/’ が含まれるかどうかに関わらず正しく動作するようになりました。(65586)

* JULI で使用されているスレッド名キャッシュの有用性が改善されました。(#451)

不具合修正(Coyote)

* HTTP Content-Range ヘッダのパーシングが修正されました。Tomcat は誤ってバイト列の後に “=” 文字を必要としていました。(65563)

* HTTP/2 と sendfile での潜在的な StackOverflowException が修正されました。

* 接続フロー制御ウィンドウの管理について更なる改善が行われました。これにより、ストリームが接続フロー制御ウィンドウの割り当てを待っている間にタイムアウトしたと間違った報告をしてくる問題を引き起こしていた様々なバグが解決されました。

* TLS が有効な NIO2 コネクタを実行中に AccessControlException が報告される問題が修正されました。(65577)

* いくつかの Servlet の非ブロック API が HTTP リクエスト本体を読み込む際に誤ってブロック IO を使用していた問題が修正されました。

不具合修正(Jasper)

* MethodExpression.getMethodInfo() の実装が修正され、メソッド式が、ExpressionFactory.createMethodExpression() に明示的に渡された型ではなく、式中のパラメータ値で定義される場合に、失敗するのではなく期待される値を返すようになりました。

不具合修正(WebSocket)

* 内部アップグレードハンドラは、破壊時に付随する WebConnection をクローズすべきでした。この問題が修正されました。

不具合修正(Web applications)

* ドキュメント Web アプリケーションの JASPIC 設定オプションの記述が明確になりました。

不具合修正(Other)

* build.properties.default ファイル冒頭の古くなったコメントが更新されました。(65585)

機能追加・改良(Coyote)

* AESCCM8 を使用する TLS 暗号が、最近の OpenSSL の変更に合わせて、セキュリティ高からセキュリティ中に再分類されました。

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

https://tomcat.apache.org/security-9.html#Fixed_in_Apache_Tomcat_9.0.54

https://tomcat.apache.org/tomcat-9.0-doc/changelog.html#Tomcat_9.0.54_(remm)