Apache httpd 2.4.54 のリリースノート

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

脆弱性修正

* Apache HTTP Server 2.4.53 および、それ以前のバージョンは、クライアント側の Connection ヘッダのホップバイホップ機構に基づき、X-Forwarded-* ヘッダをオリジンサーバに送信していませんでした。このことを使うことで、オリジンサーバ/アプリケーションの IP ベースの認証をバイパスすることが可能でした。(CVE-2022-31813)

* Apache HTTP Server 2.4.53 および、それ以前のバージョンは、バッファ用に確保された格納領域の終端を越えたところを指す長さを r:wsread() を呼び出したアプリケーションに返す可能性がありました。(CVE-2022-30556)

* Apache HTTP Server 2.4.53 が、mod_sed に対する入力が非常に大きい場合に mod_sed による変換を行うよう設定されていると、mod_sed は極端に大きなメモリを確保しようとし、アボートを引き起こす可能性がありました。(CVE-2022-30522)

* Apache HTTP Server 2.4.53 および、それ以前のバージョンでは、r:parsebody(0) を呼び出す Lua スクリプトに対する悪意のあるリクエストが、可能な入力サイズにデフォルトの制限値がないことによるサービス妨害を引き起こす可能性がありました。(CVE-2022-29404)

* Apache HTTP Server 2.4.53 および、それ以前のバージョンは、極端に大きな入力バッファが与えられた場合、ap_strcmp_match() で境界を越えた読み込みにより、クラッシュするか、あるいは情報漏洩を起こす可能性がありました。httpd と共に配布されるコードにはそのような呼び出しを強制される可能性はありませんが、ap_strcmp_match() を使う、サードパーティ製モジュールや Lua スクリプトは理論上は影響を受ける可能性があります。(CVE-2022-28615)

* Apache HTTP Server 2.4.53 および、それ以前のバージョンの ap_rwrite() 関数は、攻撃者が、mod_luas r:puts() 関数などのように、ap_rwrite() または ap_rputs() を使って非常に大きな入力であることをサーバに反映させることができれば、意図していないメモリを読み出す可能性がありました。(CVE-2022-28614)

* Windows 上の Apache HTTP Server 2.4.53 および、それ以前のバージョンは、mod_isapi モジュールでリクエストを処理するよう設定されていた場合、境界を越えて読み出しを行う可能性がありました。(CVE-2022-28330)

* Apache HTTP Server の mod_proxy_ajp の一貫性のない HTTP リクエストの解釈 (‘HTTP Request Smuggling’) の脆弱性により、攻撃者は、AJP サーバへのリクエストをそれがリクエストを転送する先に密輸することを可能にします。この問題は、Apache HTTP Server 2.4.53 および、それ以前のバージョンに影響します。(CVE-2022-26377)

不具合修正

* mod_ssl: SSLFIPS の OpenSSL 3.0 との互換性が修正されました。(PR 66063)

* mod_proxy_http: 転送不可の 100-continue に対する 417 応答が回避されました。(PR 65666)

* mod_md: 7KBを超える組み合わせ DNS 名を持つ非常に巨大な MDomain を失敗させるバグが修正されました。これは、リクエスト本体が非初期化メモリからの部分的に間違ったデータを含んでいることによるものです。この問題は、そのような構成をサインアップ/更新する際の失敗として現れます。

* MPM event: アイドルメンテナンスの前に終了させられた子プロセスが再起動されるようになりました。(PR 65769)

* ab: SSL ライブラリがサポートしている場合は、TLSv1.3 が許されるようになりました。

* core: OSX 上で TCP_NOPUSH 最適化が無効化されました。転送の遅延が発生するためです。(PR 66019)

* MPM event: graceful でない再起動の際のアクティブプロセス、全プロセスのアカウンティングが修正されました。(PR 66004)

* core: ap_escape_quotes() が、MAX_INT/2 文字を超える文字列について、引用符について二重にカウントして正しく動作するようになりました。

* mod_md: `MDCertificateAuthority` ディレクティブが、ACME CA の URL または名前を複数取ることができるようになりました。これにより、何回も証明書を入手する試みが失敗した場合の更新に対するフェールオーバが可能になります。新たなディレクティブ `MDRetryDelay` が追加されました。これは、リトライの遅延を設定します。もうひとつ、新たなディレクティブ `MDRetryFailover` が追加されました。これは、証明書の更新の際に代替えの CA が選択される前にエラーとなる試みの数を設定します。

* mod_http2: 使用されおらず、安全でないコードが削除されました。(PR66037)

* mod_proxy: バックエンドのポート番号がログメッセージに追加され、関連するサービスの特定がしやすくなりました。

* mod_http2: 接続がクライアントにより不正な使い方をされている可能性がある場合の実行中のタスクのスケジューリングの取り消しが削除されました。これが逆効果であることが証明されており、不正な使用の検知は、サーバサイドのイベントを使ったリクエストに間違ったフラグを立てる可能性があります。

* mod_md: 完全な自動状態(“key: value” 型の状態出力)が実装されました。特に、証明書と OCSP ステープリングの状態要約数だけでなく、一覧も含みます。自動状態のフォーマットは、mod_proxy_balancer で使われていたものと同様です。

* mod_md: 一回の実行で 6 個より多い証明書の更新が必要な場合に、OCSP ステープリング情報の転送の失敗につながるバグが修正されました。

* mod_proxy: 転送リクエストに対する応答で接続をバックエンドが単にクローズした場合の状態コードが 502 に設定されるようになりました。

* mod_md: 持続する時間間隔(start+end)用の JSON コード中の潜在的な NULL ポインタ逆参照が修正されました。

* mod_heartmonitor: HeartbeatMaxServers の値として “0” の代わりに、文書に記載されているデフォルト値 “10” が設定されました。”0″ に設定されていると、共有メモリ slotmem が初期化されませんでした。

* mod_md: 安全なネットワークのユーザ向けのローカルの tailscale デーモン経由での証明書の管理のサポートが追加されました。これにより、*.ts.net 空間で tailscale がアサインしたドメイン名向けの信頼できる証明書が与えられます。

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

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