Description
guzzlehttp/psr7 is a PSR-7 HTTP message library implementation in PHP. Versions prior to 2.10.2 contain improper Host header validation when parsing raw HTTP request messages and when deriving a server request URI from server variables. An attacker can provide a malformed Host header containing URI authority delimiters, such as `trusted.example@evil.example`. When the Host value is used to construct a URI, the malformed value can be reinterpreted as URI userinfo and host. This can cause the PSR-7 request URI host to differ from the original Host header value. Applications are affected if they parse attacker-controlled raw HTTP requests with `GuzzleHttp\Psr7\Message::parseRequest()` or the legacy 1.x `GuzzleHttp\Psr7\parse_request()` function, or if they build server requests from attacker-controlled server variables, then rely on the resulting URI host for routing, allow-list checks, or forwarding decisions. In affected forwarding or gateway scenarios, this may cause requests or credentials to be sent to an unintended host. The issue is patched in `2.10.2`. `1.x` is end-of-life and will not receive a patch. Some workarounds are available. Validate the `Host` header as `uri-host [ ":" port ]` before calling `Message::parseRequest()` or legacy `parse_request()` on untrusted HTTP request data, or before deriving routing and forwarding decisions from a parsed request URI. Reject Host values containing userinfo, path, query, or fragment delimiters.
Published: 2026-06-11
Score: 5.3 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

guzzlehttp/psr7 allows a malformed Host header to be interpreted as URI userinfo and host. When the library parses an incoming request it may construct a URI whose host component differs from the original Host header. An attacker can therefore trick the application into routing requests, allowing‑list checks, or forwarding to an unintended host, potentially exposing credentials or enabling further attacks. The flaw has the effect of undermining application controls that rely on the Host header for security decisions.

Affected Systems

The vulnerable product is the PHP PSR‑7 HTTP message library guzzle/psr7. Versions older than 2.10.2 are affected. The legacy 1.x release chain is end‑of‑life and will not receive any patch. The vulnerability is triggered when an application processes attacker‑controlled raw HTTP requests via the functions GuzzleHttp\Psr7\Message::parseRequest() or the legacy GuzzleHttp\Psr7\parse_request(), or when it builds a server request from unchecked server variables.

Risk and Exploitability

The CVSS score of 5.3 indicates moderate risk. No EPSS data is available and the issue is not listed in the CISA KEV catalog. Because the vulnerability can be triggered by an external user sending a crafted HTTP request, the attack vector is remote. Exploitation requires that the application rely on the parsed URI host for routing, allow‑list checks, or forwarding and that the incoming request data are not trusted. Given these conditions, the likelihood of exploitation is limited to environments where the library is used to parse untrusted requests in a forwarding or gateway context.

Generated by OpenCVE AI on June 11, 2026 at 13:50 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade guzzle/psr7 to version 2.10.2 or later
  • If an upgrade is not immediately possible, validate the Host header value against the pattern "uri-host[:port]" before invoking Message::parseRequest() or the legacy parse_request() on untrusted HTTP data
  • Reject any Host values that contain userinfo, path, query, or fragment delimiters to prevent authority reinterpretation

Generated by OpenCVE AI on June 11, 2026 at 13:50 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-34xg-wgjx-8xph guzzlehttp/psr7 has Host Confusion via Authority Reinterpretation
History

Thu, 11 Jun 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 11 Jun 2026 12:45:00 +0000

Type Values Removed Values Added
Description guzzlehttp/psr7 is a PSR-7 HTTP message library implementation in PHP. Versions prior to 2.10.2 contain improper Host header validation when parsing raw HTTP request messages and when deriving a server request URI from server variables. An attacker can provide a malformed Host header containing URI authority delimiters, such as `trusted.example@evil.example`. When the Host value is used to construct a URI, the malformed value can be reinterpreted as URI userinfo and host. This can cause the PSR-7 request URI host to differ from the original Host header value. Applications are affected if they parse attacker-controlled raw HTTP requests with `GuzzleHttp\Psr7\Message::parseRequest()` or the legacy 1.x `GuzzleHttp\Psr7\parse_request()` function, or if they build server requests from attacker-controlled server variables, then rely on the resulting URI host for routing, allow-list checks, or forwarding decisions. In affected forwarding or gateway scenarios, this may cause requests or credentials to be sent to an unintended host. The issue is patched in `2.10.2`. `1.x` is end-of-life and will not receive a patch. Some workarounds are available. Validate the `Host` header as `uri-host [ ":" port ]` before calling `Message::parseRequest()` or legacy `parse_request()` on untrusted HTTP request data, or before deriving routing and forwarding decisions from a parsed request URI. Reject Host values containing userinfo, path, query, or fragment delimiters.
Title guzzlehttp/psr7 has Host Confusion via Authority Reinterpretation
Weaknesses CWE-20
CWE-918
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-11T16:05:56.424Z

Reserved: 2026-05-26T23:26:07.976Z

Link: CVE-2026-48998

cve-icon Vulnrichment

Updated: 2026-06-11T16:05:52.519Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-06-11T13:16:33.133

Modified: 2026-06-11T15:25:07.217

Link: CVE-2026-48998

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-11T19:27:49Z

Weaknesses
  • CWE-20

    Improper Input Validation

  • CWE-918

    Server-Side Request Forgery (SSRF)