Tomcat 9.0.83 のリリースノート

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

脆弱性修正

* リクエストスマグリング CVE-2023-46589: Tomcat は、HTTP トレーラヘッダを正しくパースしていませんでした。特殊な細工を施し、ヘッダサイズの上限を超えているトレーラヘッダにより、Tomcat が一個のリクエストを複数のリクエストとして処理するよう仕向け、背後にリバースプロキシがある場合にリクエストスマグリングの可能性がありました。この問題が修正されました。(CVE-2023-46589)

不具合修正(Catalina)

* TLSCertificateReloadListener が、X509Certificate#getNotAfter() の読み取り不可の表現を出力していました。この問題が修正されました。(67667)

* FORM 認証の過程でユーザがページをリフレッシュした場合、FORM 認証後に元のセッションタイムアウトがリストアされることが保証されるようになりました。(67793)

* リクエスト属性 jakarta.servlet.error.exception を設定することは、カレントのリクエストとレスポンスのエラー処理のトリガとするには不充分であることが保証されるようになりました。(66875)

* 65433 の修正で導入された、いくつかのファイル正規化呼び出しが回避されるようになりました。(68054)

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

* 正しくないリクエスト(例えば、不正なトレーラヘッダなど)によるエラーを報告する際、ステータスコード 500 ではなくて、ステータスコード 400 が使われるようになりました。

* アプリケーションが例外を受け入れるかどうかに関わらず、リクエストの読み出し中の IOException は常にエラー処理をトリガすることが保証されるようになりました。

不具合修正(Coyote)

* SSLHostConfig の ciphers 属性がどのように使用されるかが明確化されました。(67628)

* PEM ファイルを使用する TLS コネクタは、TLSCertificateReloadListener と共に動作するか、あるいは、そうならない稀なケースでは、コネクタの起動時に警告をログ出力することが保証されるようになりました。(67666)

* JVM によりデフォルトでサポートされる組み合わせよりも広い範囲の KDF と暗号が PEM ファイルに対してサポートされるようになりました。特に、OpenSSL のデフォルトの HmacSHA256 および DES-EDE3-CBC がサポートされます。(67675)

* TLS 設定のリロードで、Connector が新たな接続を拒否したり、JVM がクラッシュする可能性がありました。この問題が修正されました。(67927)

* Tomcat Native 1.2.x および 2.0.x の両方が利用可能な場合、1.2.x の方を選択するようになりました。1.2.x は APR/Native コネクタをサポートしているのに対し、2.0.x はサポートしていないためです。(67934)

* TLS ハンドシェークの失敗を引き起こす、巨大な TLS クライアントのハローメッセージの処理が修正されました。(67938)

* 選択された MessageByte の値が最初にアクセスされたときに String に変換され、以降のアクセスが高速化され、ガベージコレクションが削減されるようになりました。(68026)

不具合修正(Jasper)

* EL の性能が改善されました。(68068)

不具合修正(Web applications)

* 56248 の修正にあったリグレッションが修正されました。このリグレッションにより、appBase または xmlBase に既に存在していたコンテキストファイル中に既に存在していた WAR またはディレクトリの Manager 経由でのデプロイが妨げられていました。(68035)

機能追加・改良(Catalina)

* manager webapp に含まれる status サーブレットは、JSON=true URL パラメータを使うことで、統計情報を JSON として出力することができるようになりました。

* ServiceBindingPropertySource はオプションで、プロパティ値を含むファイルの末尾の改行を削除することができるようになりました。

* PEMFile は、ASN.1 OID の 識別不可能な文字列表現を表示するようになりました。(67926)

機能追加・改良(Coyote)

* SSLHostConfig#certificateKeyPasswordFile および SSLHostConfig#certificateKeystorePasswordFile が追加されました。(66670)

* SSLHostConfigCertificate.setCertificateKeystore(ks) を呼び出した際に、setCertificateKeystoreType(ks.getType()) が自動的に呼び出されるようになりました。

機能追加・改良(Other)

* Ant の <javaversion /> タスクを使用して、最小の Java ビルドバージョンが強制されるようになりました。(67538)

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

* JaCoCo が 0.8.11 に更新されました。

* SpotBugs が 4.8.0 に更新されました。

* BND が 7.0.0 に更新されました。

* Tomcat をビルドするのに必要な Java の最小バージョンが Java 17 に引き上げられました。

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

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

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