Apache httpd 2.4.55 のリリースノート

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

脆弱性修正

* mod_proxy: 2.4.55 より前の mod_proxy はバックエンドが HTTP レスポンスを分割させるトリガを許していました。Apache HTTP Server 2.4.55 より前のバージョンでは、悪意のあるバックエンドがレスポンスヘッダを早期に切り詰めることができ、結果としていくつかのヘッダがレスポンスの本体に取り込まれてしまっていました。後の方のヘッダがなにかセキュリティ目的であれば、クライアントにそれが解釈されないことになります。この問題が修正されました。(CVE-2022-37436)

* mod_proxy_ajp: mod_proxy_ajp でリクエストスマグリングが可能になっていました。Apache HTTP Server の mod_proxy_ajp には HTTP リクエストの一貫性のない解釈(「HTTP リクエストスマグリング」)の脆弱性があり、攻撃者がリクエストの転送先の AJP サーバへのリクエストにスマグリングを行わせることが可能になっていました。この問題は Apache HTTP Server 2.4 系列のバージョン 2.4.54 およびそれ以前のバージョンに影響します。この問題が修正されました。(CVE-2022-36760)

* mod_dav: mod_dav には境界外読み込みやゼロのバイトの書き込みの問題がありました。注意深く作成した If: リクエストヘッダにより、送られてきたヘッダの値を超えた位置のプール(ヒープ)メモリ領域でのメモリの読み出しや、一個の値ゼロのバイトの書き込みが可能になっていました。これによりプロセスがクラッシュする可能性がありました。この問題は Apache HTTP Server 2.4.54 およびそれ以前のバージョンに影響します。この問題が修正されました。(CVE-2006-20001)

不具合修正

* mod_dav: ロック用データベースが可能な場合は読み込み専用でオープンされるようになりました。(PR 36636)

* mod_proxy_http2: 他の proxy モジュールが行っているように、バックエンドからの応答に標準的な httpd の content type 処理が適用されるようになりました。(PR 66391)

* mod_dav: mod_dav は PUT 失敗時の dav_fs の応答を上書きしていました。この問題が修正されました。(PR 35981)

* mod_proxy_hcheck: worker の timeout 設定が尊重されるようになりました。

* mod_http2: 本モジュールのバージョン 2.0.10 が github バージョンの変更と同期されました。これは、接続とストリームの処理方法の部分的な書き換えです。
– APR の pollset と pipes が(サポートされていれば)を使用して、主接続の監視が行われ、リクエスト/レスポンスの処理用の IO への対応が行われるようになりました。以前のバージョンの間欠的な待ちを低減させます。

– H2SerializeHeaders ディレクティブは依然として存在しますが、何も効果がなくなりました。

– 動作が誤っているように見えるクライアントについては依然として割り当てられるリソースが少なくなりますが、継続中のリクエストが中断されることはなくなりました。

– プロキシ経由のリクエストの “Server” ヘッダが保存されずに上書きされるという、バージョン 1.15.24 以来の問題が修正されました。

– v1.15.24 でのリグレッションが修正されました。この問題により、httpd の子プロセスが graceful リロードや MaxConnectionsPerChild に達した際に修されませんでした。未処理の h2 リクエストがその時点でキューに投入されると、ストールする可能性がありました。#212 (https://github.com/icing/mod_h2/issues/212) を参照してください。

– Extended Status が有効化されいている場合に、H2 接続について ‘server-status’ で表示される情報が改善されました。IO 操作が発生した、あるいは転送された IO 状態が更新された最新のリクエストを参照することができるようになりました。

– MaxRequestsPerChild などのサーバの制限に達した場合、HTTP/2 接続を新しい接続については GOAWAY フレームを送信するのが早すぎており、不正なプロトコル状態となり、クライアントがリクエストに失敗していました。PR65731 <https://bz.apache.org/bugzilla/show_bug.cgi?id=65731> を参照してください。本モジュールは HTTP/2 プロトコルを正しく初期化するようになり、GOAWAY フレームがアナウンスされることによるシャットダウンの前にクライアントが一個のリクエストをサブミットすることが可能になりました。

– :scheme 疑似ヘッダの値が接続のスキームに一致しない場合、絶対 URI 経由で http プロトコル処理に転送され、リクエストのセマンティックスが保存されるようになりました。疑似ヘッダの値やその存在の組み合わせの検査が、RFC 7540 に記載されているように追加されました。#230 (https://github.com/icing/mod_h2/issues/230) の修正です。

– 抑止されたトレーラ(例えば、末尾にある HEADER フレームなど)が特定の場合に生成されるバグが修正されました。詳細は #233 (https://github.com/icing/mod_h2/issues/233) を参照してください。この問題では、gRPC のレスポンスが正しく生成されるのを妨害していました。

– リクエストおよびレスポンスのヘッダ値の前後の空白/タブ文字が自動的に除去されるようになりました。これは、Apache httpd の http/1.1 のパーサが行っているのと同じ動作です。nghttp2 v1.50.0+ でのこの検査は無効化されました。

– v2.0.x バージョンの安定性に向け、精力的な製品テストが行われました。

* mod_proxy_http2: リクエストの ‘:authority’ が既知である場合には ‘Host:’ ヘッダを転送しないことにより、#235 が修正されました。以前の修正が正しくなかったことを捕捉できなかったテストケースが改善されました。

* mod_proxy_hcheck: hcmethod が、GET11, HEAD11, OPTIONS11 を使用した HTTP/1.1 リクエストを許すようになりました。

* mod_proxy: 強制的なバックエンド接続のクローズについての AH03408 警告が INFO レベルでログ出力されるようになりました。

* mod_ssl: 設定をダンプする際、証明書ファイルや鍵ファイルの存在はテストされなくなりました。

* mod_authn_core: AuthName と AuthType に式のサポートが追加されました。

* mod_ssl: プロキシ接続で SSL を使用したリクエストを処理した場合、”SSLProxyEngine” がサーバ全体ではなく、location または proxy セクションでのみ設定されていた場合にエラーがログ出力されていました。その接続は機能し続けるので、エラーログ出力が誤っていました。この問題が修正されました。(PR66190)

* mod_proxy_hcheck: 標準の ERROR 状態でワーカが再度有効化されました。(PR 66302)

* mod_proxy_hcheck: AJP/CPING サポートが正しく検知されるようになりました。(PR 66300)

* mod_http2: mod_http2.h が公開ヘッダとしてエクスポートされました。

* mod_md: 新たなディレクティブ `MDStoreLocks` を使って、`MDStoreDir`向けの共有ファイルシステムとのクラスター設定で、いくつものクラスターノードが同時に再起動した場合に更新された証明書の活性化の指示ができるようになりました。格納時のロックはデフォルトでは有効化されていません。v2.4.14 から curl_easy のクリーンアップの動作がリストアされ、OCSP リクエストに対する curl_multi の使用方法がそれと協調動作するようにリファクタリングされました。<https://github.com/icing/mod_md/issues/293> の修正です。

* core: ap_is_matchexp での大きい入力でのオーバフローが回避されるようになりました。(PR 66033)

* mod_heartmonitor: “HeartbeatMaxServers 0” で slotmem の代わりにファイルベースのストレージを使うことができるようになりました。バージョン 2.4.54 で HeartbeatMaxServers のデフォルト値がマニュアル記載の値 10 に設定された後、これが必要になっていました。(PR 66131)

* mod_dav: DAVlockDiscovery オプションで WebDAV のロックディスカバリを無効化することができるようになりました。これは、クライアントが PROPFIND を大量に使用する場合に性能が大幅に改善される可能性があります。(PR 66313)

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

https://dlcdn.apache.org/httpd/CHANGES_2.4