製品・ソフトウェアに関する情報
guzzlephpのpsr-7における複数の脆弱性
Title guzzlephpのpsr-7における複数の脆弱性
Summary

guzzlehttp/psr7はPHPでのPSR-7 HTTPメッセージライブラリの実装です。バージョン2.10.2未満では、ASCII制御文字、空白文字、またはDELがファーストパーティのURIホストコンポーネントで拒否されませんでした。脆弱なフローは以下の通りです。まず、アプリケーションはユーザー制御のURLを受け入れます。次に、そのURLを使ってPSR-7の`Uri`または`Request`を構築します。三番目に、ホストコンポーネントにCRLFまたは他のヘッダーに不適切な文字が含まれています。四番目に、明示的な`Host`ヘッダーが提供されていない場合、そのホストがPSR-7の`Host`ヘッダーにコピーされます。最後に、そのリクエストがシリアル化されるか、独立して不正なホストを拒否しないHTTPクライアントによって送信されます。このフローにおいて、攻撃者はシリアル化されたリクエストに追加の攻撃者制御ヘッダー行を含めることが可能です。例えば、ホストに`"\r\nX-Injected: yes"`が含まれていると、生成された`Host`ヘッダーが複数行のHTTPヘッダーになる場合があります。ユーザー制御のURLを外向きHTTPリクエスト、URL転送、プロキシ、クローリング、Webhook配信または同様のリクエストディスパッチフローで使用するアプリケーションが影響を受けます。HTTP/1.1接続の再利用、プロキシ、ゲートウェイ、ロードバランサーを含む展開では、解析方法によって、下流のコンポーネントでリクエストスマグリングやキャッシュポイズニングが発生する可能性もあります。この問題は`2.10.2`以降で修正されています。`1.x`はサポート終了しており、パッチは提供されません。回避策として、PSR-7の`Uri`や`Request`インスタンスを構築する前に、すべての信頼できないURI文字列を検証し、ASCII制御文字、空白文字、DEL(CRLF、タブ、スペース、NUL、DEL文字を含む)を含む入力を拒否してください。リクエストを転送するアプリケーションは、最終的なHTTPクライアントまたはシリアライザが無効なURIとヘッダーデータを拒否してからネットワークに書き込むことを保証する必要があります。

Possible impacts ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報の一部が書き換えられる可能性があります。 ・当該ソフトウェアは停止しません。 
Solution

ベンダ情報を参照して適切な対策を実施してください。

Publication Date June 11, 2026, midnight
Registration Date June 16, 2026, 1:36 p.m.
Last Update June 16, 2026, 1:36 p.m.
CVSS3.0 : 警告
Score 5.3
Vector CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Affected System
guzzlephp
psr-7 2.10.2 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
Change Log
No Changed Details Date of change
1 [2026年06月16日]
  掲載
June 16, 2026, 1:36 p.m.

NVD Vulnerability Information
CVE-2026-49214
Summary

guzzlehttp/psr7 is a PSR-7 HTTP message library implementation in PHP. Versions prior to 2.10.2 did not reject ASCII control characters, whitespace, or DEL in first-party URI host components. A vulnerable flow is: First, an application accepts a user-controlled URL. Second, the URL is used to construct a PSR-7 `Uri` or `Request`. Third, the host component contains CRLF or another header-unsafe character. Fourth, the host is copied into the PSR-7 `Host` header when no explicit `Host` header is provided. Finally, the request is serialized or sent by an HTTP client that does not independently reject the malformed host. In that flow, an attacker can cause the serialized request to contain additional attacker-controlled header lines. For example, a host containing `"\r\nX-Injected: yes"` can cause the generated `Host` header to span multiple HTTP header lines. Applications are affected when they use user-controlled URLs for outbound HTTP requests, URL forwarding, proxying, crawling, webhook delivery, or similar request-dispatch flows. In deployments involving HTTP/1.1 connection reuse, proxies, gateways, or load balancers, this malformed request may also contribute to request smuggling or cache poisoning, depending on how downstream components parse the request. The issue is patched in `2.10.2` and later. `1.x` is end-of-life and will not receive a patch. As a workaround, validate and reject all untrusted URI strings before constructing PSR-7 `Uri` or `Request` instances. Reject input containing ASCII control characters, whitespace, or DEL, including CRLF, tab, space, NUL, or DEL characters. Applications that forward requests should also ensure the final HTTP client or serializer rejects invalid URI and header data before writing requests to the network.

Publication Date June 11, 2026, 10:16 p.m.
Registration Date June 12, 2026, 4:18 a.m.
Last Update June 15, 2026, 11:41 p.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:a:guzzlephp:psr-7:*:*:*:*:*:*:*:* 2.10.2
Related information, measures and tools
Common Vulnerabilities List