CVE-2026-48998 Details
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 `[email protected]`. 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.
A vulnerability exists in GuzzleHttp Psr7, a PHP library implementing the PSR-7 HTTP message standard, in versions prior to 2.10.2. The issue arises from improper validation of the Host header when parsing raw HTTP requests or deriving server request URIs from server variables. An attacker can exploit this by sending a malformed Host header that includes URI authority delimiters, such as '[email protected]'. When GuzzleHttp Psr7 processes this header to create a URI, it misinterprets the value, separating it into userinfo and host components. This can result in the PSR-7 request URI host not matching the original Host header value. Applications that use GuzzleHttp Psr7 to parse untrusted HTTP data or to create server requests from manipulated server variables may be affected, particularly if they rely on the resulting URI host for routing or forwarding decisions. In such cases, requests or credentials could be inadvertently sent to the wrong host.
Users can upgrade to GuzzleHttp Psr7 version 2.10.2 or later. For those using version 1.x, which is no longer maintained, it is recommended to validate Host header values before processing untrusted request data or server variables. Accept only standard URI host formats and reject values that include userinfo, paths, queries, fragments, malformed IP literals, or invalid port syntax.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed Jun 11, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/guzzle/psr7/security/advisories/GHSA-34xg-wgjx-8xph | [email protected] | MitigationVendor Advisory |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-918 | Server-Side Request Forgery (SSRF) | [email protected] |
| CWE-20 | Improper Input Validation | [email protected] |
| CWE-918 | Server-Side Request Forgery (SSRF) | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| guzzlephp psr-7 | < 2.10.2 |
CPE
Remediation
| |
Change History
4 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| Jun 15, 2026 | Initial Analysis | [email protected] |
| Jun 11, 2026 | New CVE Received | [email protected] |