
このドキュメントは2024 年 11 月 11 日にリリースされた Tomcat 10.1.33 のリリースノートの日本語訳です。
ダウンロードは Tomcat ダウンロードより行えます。
以下はリリースの詳細と、最新情報およびドキュメントを補足するその他情報について記載しています。
本リリースノートには Tomcat バージョン 10.1.33 および 10.1.32 のリリース情報が記載されています。10.1.32 は単独ではリリースされていません。
10.1.33
脆弱性修正
* 69333 の修正により、プールされた JSP タグが使用後に解放されなくなり、一部のタグの出力が期待どおりにエスケープされなくなる可能性がありました。このエスケープされていない出力により、XSS が発生する可能性がありました。本件は 2024/11/18 に公開されています。(CVE-2024-52318)
不具合修正(Other)
*リリースビルドの問題が修正されました。
10.1.32
不具合修正(Catalina)
* 部分的にマッピングされたリクエストで CrawlerSessionManagerValve 内の NPE (NullPointerException) が回避されるようになりました。
* フォルダーのロック時に、応答に WebDAV の Lock-Token ヘッダーが追加されるようになりました。
* 無効な WebDAV ロックリクエストは 400 エラーで拒否されるようになりました。
* コレクションをアンロックしようとしたときの WebDAV のリグレッションが修正されました。
* WebDAV コピー操作の宛先がロックされていないことを確認するようになりました。
* リクエスト本文を含む WebDAV MKCOL 操作はオプションでありサポートされていないため、415 応答を送信するようになりました。
* WebDAV XML 要素の名前空間で DAV: を強制するようになりました。
* 親コレクションがロックされている場合、子リソースに対する新しい WebDAV ロックを許可しないようになりました。(RFC 4918 セクション6.1)
* WebDAV DELETE は正常に削除されたリソースの既存のロックをすべて削除する必要がありました。この問題が修正されました。
* Web アプリケーションのクラスローダーリソースの検索時に、キャッシュが見つからないという結果が表示されていました。これにより、場合によっては同じクラスを繰り返し検索する java.sql.DriverManager などのコンポーネントによって発生するパフォーマンスの問題が解決されました。大規模な Web アプリケーションでは、これがパフォーマンスの問題を引き起こす可能性がありました。キャッシュのサイズは、StandardContext の新しい notFoundClassResourceCacheSize によって制御できるようになりました。
* サブコンポーネントが初期化後に FAILED 状態になる可能性があるため、INITIALIZED 状態後の停止は noop であるように修正されました。
* 同じリソースに対して PUT および DELETE 要求が同時に発生する場合の Web リソースキャッシュサイズの計算が不正確になる問題が修正されました。
* 同じパスに対する同時読み取りと書き込み (GET と PUT / DELETE など) により、一部のフィールドがファイルが存在するかのように設定され、一部のフィールドが存在しないかのように設定され、FileResource が破損しました。その結果、メタデータに一貫性がありませんでした。
* ExpiresFilter が GET および HEAD リクエストでのみキャッシュヘッダーを設定するようになりました。また、アプリケーションが Cache-Control: no-store を設定しているリクエストをスキップするようになりました。(69415)
* ネストされたインクルードが複数レベルある場合の ServletRequest.getAttribute() のパフォーマンスが改善されました。(69419)
不具合修正(Coyote)
* SSL 実装から返される長さゼロのバイト配列に対して、null SSL セッション ID を返すようになりました。
* BoringSSL はサポートされていないため、OpenSSLConf をスキップするようになりました。
* AbstractHttp11Protocol に HttpParser が存在しない場合は、Http11Processor に HttpParser を作成して、通常の HTTP/1.1 のライフサイクルの堅牢性が向上しました。この新しい動作は、HTTP/2 のパフォーマンスを向上させるために、以前のリファクタリングで導入されました。
* OpenSSLContext は、init メソッドで何か問題が発生したことが確認できた場合、KeyManagementException をスローするようになりました。これは javax.net.ssl.SSLContext.init で文書化されている動作です。これにより、エラー処理の一貫性が向上します。
* RFC 9110 のセクション 9.3.2 に従って、デフォルトの HEAD 応答にペイロード HTTP ヘッダーフィールドが含まれなくなりました。(69379)
不具合修正(Jasper)
* 古い生成コードとの互換性のため、ランタイムで非推奨のタグ解放メソッドが再度追加されました。
* タグプーリングを使用しているときにタグ解放が呼び出され、使用していないときにスキップされるというリグレッションが修正されました。このリグレッションは 69333 によって導入されました。(69399)
* 式言語でのメソッド検索のパフォーマンスが改善されました。必要なメソッドに引数がない場合は、キャストや強制を考慮する必要がなく、メソッド検索プロセスが簡素化されました。(69381)
* 生成されたコードで比較的コストのかかるメソッド呼び出しの結果を繰り返すのではなく再利用することで、JSP インクルードアクションのパフォーマンスが改善されました。(69382)
* PageContextImpl での不要なオブジェクト割り当てを回避するようになりました。(69398)
* StringInterpreterEnum を使用する場合、無効な Enum に遭遇しても IllegalArgumentException をスローしないようになりました。代わりに、実行時に値を解決するようになりました。(69406)
* パラメータを受け入れないメソッドのメソッドパラメータの EL 評価が最適化されました。(69429)
* メソッドパラメータの EL 評価がさらに最適化されました。
機能追加・改良(Catalina)
* 新しい Servlet API メソッド HttpServletResponse.sendEarlyHints() のサポートが追加されました。
* クラスが見つからない場合 (ClassNotFoundException 発生時) に、Digester や Web アプリケーションクラスローダーでクラスパスを報告するデバッグログが追加されました。(55470)
* DefaultServlet のリスト表示で、テーブルヘッダーとボディを適切に分離するようになりました。(69374)
* DefaultServlet の HTML リスト表示の「ファイル最終更新」のレンダリングが改善されました。(69373)
* DefaultServlet の HTML 出力が改善されました。
* FilterBase を基本クラスとして使用するように RateLimitFilter がリファクタリングされました。これを行う主な利点は、init-param 値を処理するコードが少なくなることです。
* DefaultServlet の HTML リスト表示で不正なラベルの使用が回避されました。(69370)
* RFC 4918 セクション 7.3 および付録Dに従い、WebDAV ロックの null サポートが削除されました。代わりに、存在しないリソースに対するロックは空のファイルを作成し、通常のロックでロックするようになりました。
* RFC 4918 に準拠するよう WebDAV 共有ロックの実装がリライトされました。
* Apache Jackrabbit プロジェクトのコードを使用して WebDAV の If ヘッダーが実装されました。
* WebDAV Servlet に PropertyStore インターフェースを追加し、デッドプロパティのストレージの実装が可能になりました。WebDAV Servlet の propertyStore 初期化パラメーターでストアの設定が可能になりました。デフォルトでは非永続的な単純実装を使用しています。
* 新たに追加された PropertyStore を使用して WebDAV の PROPPATCH メソッドが実装され、さらに PROPFIND もサポートされるようになりました。
* Web リソースキャッシュのデバッグログを追加し、リソースの追加と削除に伴う現在のサイズを追跡できるようになりました。
* RFC 4918の推奨に従い、ロックトークン用のレガシー WebDAV opaquelocktoken: スキームが urn:uuid: に置き換えられ、secret 初期化パラメーターが削除されました。
* アプリケーションが HttpServletResponse.sendError() を 103 ステータスコードで呼び出すことで、早期ヒント情報レスポンスを送信できるようになりました。
機能追加・改良(Other)
* コード署名のプロバイダーが DigiCert ONE から ssl.com の eSigner に切り替えられました。
* Byte Buddy がバージョン 1.15.10 に更新されました。
* CheckStyle がバージョン 10.20.0 に更新されました。
* ドイツ語の翻訳が改善しました。
詳細は以下をご覧ください。
https://tomcat.apache.org/tomcat-10.1-doc/changelog.html#Tomcat_10.1.33_(schultz)
https://tomcat.apache.org/security-10.html#Fixed_in_Apache_Tomcat_10.1.33