
このドキュメントは 2024 年 10 月 8 日にリリースされた Tomcat 9.0.96 のリリースノートの日本語訳です。
ダウンロードは Tomcat ダウンロードより行えます。
以下はリリースの詳細と、最新情報およびドキュメントを補足するその他情報について記載しています。
脆弱性修正
* HTTP/2 リクエストで使用されるリクエストとレスポンスの不適切なリサイクルにより、ユーザ間でリクエストやレスポンスが取り違えられる可能性がありました。本件は 2024/10/1 に Tomcat セキュリティ チームによって特定され、2024/11/18 に公開されています。(CVE-2024-52317)
* Tomcat が認証プロセス中に失敗を示す HTTP ステータスを明示的に設定せずに例外を投げるようなカスタマイズされた Jakarta 認証 (旧 JASPIC) ServerAuthContext コンポーネントを使用するように設定されている場合、認証は失敗していない可能性があり、ユーザは認証プロセスをバイパスできる可能性がありました。このように動作する Jakarta 認証コンポーネントは知られていません。本件は 2024/9/19 に Tomcat セキュリティ チームによって特定され、2024/11/18 に公開されています。(CVE-2024-52316)
不具合修正(Catalina)
* Jakarta Authentication CallbackHandler は、Subject に GenericPrincipal を一つしか作らないことが保証されるようになりました。
* Jakarta Authentication のプロセスが Exception で失敗した場合、ServerAuthContext では設定されない可能性があるので、HTTP レスポンスのステータスが明示的に 500 に設定されるようになりました。
* Jakarta Authentication のプロバイダの設定を永続化する際、まだ存在していない必要な親ディレクトリが作られるようになりました。
* Jakarta Authentication のプロバイダの設定の永続化に付随する一時ファイルの削除で、エラーを検知するのに使用されるロジックが修正されました。
* Jakarta Authentication のコールバックを処理する際、CallerPrincipalCallback が Principal を提供しない場合、null を持つ PasswordValidationCallback から得た Principal を上書きしないようになりました。
* 一つの設定を秒間に複数回格納する場合に、設定ファイルのバックアップがそれを格納する際に失われる問題が回避されるようになりました。
* WebdavServlet は、誤った Javadoc を持つスーパークラスから getRelativePath() メソッドの複製を作っていました。この問題が修正されました。(69359)
* WebdavServlet と DefaultServlet の間で DELETE の動作に一貫性がありませんでした。この問題が修正されました。(69360)
* リソースの削除が許されていない場合、WebdavServlet は正しく Allow ヘッダを返すようになりました。
* 非ワイルドカードマッピングが WebdavServlet で使用された場合の警告のログ出力が追加されました。
* WebDAV への複数ステータスのレスポンス中のエントリの順序がリソースが処理される順序と一貫性を持つことが保証されるようになりました。(69361)
* WebDAV 経由でのコレクションの削除が失敗した時により良い複数ステータスのレスポンスが提供されるようになりました。削除できない空のディレクトリもそのレスポンスに含まれるようになりました。(69362)
* WebDAV サーブレットで getPathPrefix() が一貫性を持って使用されるようになり、WebDAV サーブレットが web アプリケーション内のサブパスにマウントされた場合に正しいパスが使用されることが保証されるようになりました。(69363)
不具合修正(Coyote)
* HTTP レスポンスの Date ヘッダを生成するのに使用される FastHttpDateFormat#getCurrentDate() が、与えられた入力に対して正しい文字列を生成するようになりました。この修正の前は、場合によって出力が一秒ずれることがありました。(69316)
* Apache Tomcat Native 使用時、APR が完了した後 SSLContext オブジェクトが GC を通じて破壊されることによって引き起こされるクラッシュが回避されるようになりました。
* リクエストのトレーラフィールドの HTTP/2 の処理が改善されました。トレーラフィールドは後続のストリームのヘッダの前に受信する必要がなくなり、また、Connector がトレーラフィールドが受信される前に一時停止した場合に進行中のストリームのトレーラフィールドを読み込んでおく必要もなくなりました。
* ストリームレベルのエラーが入力 HTTP/2 フレームの処理中に検知された場合は、HTTP/2 ストリームについては、リクエストとレスポンスのリサイクルがあまり早く行われないことが保証されるようになりました。これまでは、誤った処理時刻がアクセスログに現れることがありました。
不具合修正(Jasper)
* 生成される JSP から不要なコードが削除されるようになりました。(69333)
* not empty を使用しているオペランドや式を3個以上持つ AND や OR 演算を含む式の処理の性能が改善されました。(69338)
* ラムダ引数を追跡するのに使用されるデータ構造に対して遅延初期化を使うことで ELContext のメモリ消費量が削減されるようになりました。(69348)
不具合修正(Web applications)
* OpenSSL が使用されている場合、manager webapp は再び証明書にアクセスできるようになりました。
機能追加・改良(Coyote)
* HTTP/2 プロトコルが内部で入れ子になっている HTTP/1.1 コネクタから継承する属性の一覧に server と serverRemoveAppProvidedValues が追加されました。
機能追加・改良(Other)
* Byte Buddy が 1.15.3 に更新されました。
* CheckStyle が 10.18.2 に更新されました。
* フランス語翻訳が改善されました。
* 日本語翻訳が改善されました。
* 中国語翻訳が改善されました。
詳細は以下をご覧ください。
https://tomcat.apache.org/tomcat-9.0-doc/changelog.html#Tomcat_9.0.96_(remm)
https://tomcat.apache.org/security-9.html#Fixed_in_Apache_Tomcat_9.0.96