概要
guzzlehttp/psr7はPHPで実装されたPSR-7 HTTPメッセージライブラリです。バージョン2.10.2未満には、生のHTTPリクエストメッセージを解析する際およびサーバ変数からサーバリクエストURIを導出する際に、Hostヘッダーの不適切な検証があります。攻撃者は`trusted.example@evil.example`のようなURI権限区切り文字を含む不正なHostヘッダーを提供できます。Host値がURIの構築に使用されると、この不正な値はURIのuserinfoおよびhostとして誤解釈される可能性があります。これにより、PSR-7リクエストURIのホストが元のHostヘッダー値と異なる場合があります。`GuzzleHttpPsr7Message::parseRequest()`やレガシーな1.xの`GuzzleHttpPsr7parse_request()`関数で攻撃者制御の生HTTPリクエストを解析する場合、または攻撃者制御のサーバ変数からサーバリクエストを構築し、その得られたURIホストをルーティング、許可リストチェック、転送判断に用いるアプリケーションが影響を受けます。影響を受ける転送やゲートウェイのシナリオでは、リクエストや認証情報が意図しないホストへ送信される可能性があります。この問題はバージョン2.10.2で修正されました。1.xはサポート終了済みで修正パッチは提供されません。一部の回避策として、不正なHTTPリクエストデータに対して`Message::parseRequest()`やレガシー`parse_request()`の呼び出し前、または解析済みのリクエストURIからルーティングや転送判断を行う前に、Hostヘッダーを`uri-host [ “:” port ]`形式として検証し、userinfo、パス、クエリ、フラグメントの区切り文字を含むHost値を拒否してください。
技術情報
- 公開日: 2026-06-16T13:36:09+09:00
- 更新日: 2026-06-16T13:36:09+09:00
参考リンク
対処方法
該当ソフトウェアの最新版への更新、または開発元が提供する緩和策の適用を推奨します。運用環境に応じて事前検証の上で実施してください。
免責
本記事は公開情報をもとに自動集約された速報です。正確性・完全性は保証できません。必ず一次情報(上記リンク等)をご確認ください。
