Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker controls child.example.com
-
DeliveryApplication authenticates to parent host via Guzzle
-
ExploitParent sets host-only cookie with no Domain attribute
-
InstallGuzzle incorrectly widens scope by storing request host in Domain field
-
C2Application makes subsequent request to child subdomain using same CookieJar
-
ExecuteGuzzle transmits host-only cookie to attacker-controlled child host
-
ImpactAttacker captures session token and replays against parent
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Outbound data filtering
|
| Exploitation Conditions | Exploitation requires all four of the following conditions simultaneously: (1) the application must enable Guzzle's built-in cookie support by passing a CookieJar (CookieJar, FileCookieJar, or SessionCookieJar) to the Guzzle client - applications that do not use Guzzle's cookie support are entirely unaffected; (2) the application must reuse the same CookieJar instance across requests to both a parent host (e.g., example.com) and at least one of its subdomains (e.g., child.example.com); (3) the parent host must set a cookie without a Domain attribute or with an empty Domain attribute, making it host-only; (4) the attacker must control or be able to observe traffic to the child subdomain. Exploitation is further limited by the cookie's own restrictions - path must match, Secure cookies are only sent over TLS, and expired cookies are not forwarded. Applications using a separate jar per host or trust boundary, applications that never request a less-trusted subdomain with the same jar, and applications whose servers only set cookies with an explicit non-empty Domain attribute are not affected. |
| Impact | The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N) scores 8.2 but the AC:H and AT:P metrics are critical context: exploitation requires a specific, non-default application architecture - a shared CookieJar reused across a trust boundary involving a subdomain the attacker controls or observes. In practice, many Guzzle deployments use per-request or per-session jars, or do not request subdomains from the same jar, which eliminates the attack surface entirely. There is no CISA KEV listing and no public proof-of-concept code, meaning this is not being opportunistically exploited at scale. EPSS data is absent from the provided intelligence. The real-world priority is medium-high for applications that aggregate API calls across multiple subdomains under the same origin using a shared persistent jar - a pattern seen in microservice or multi-tenant architectures. For single-host API clients, practical risk is near zero. The high CVSS score is technically defensible but overstates operational urgency for most deployments. |
| Exploit ScenarioDerived | An attacker registers or compromises child.example.com. A PHP backend using Guzzle authenticates to example.com, which responds with a host-only Set-Cookie: sid=secret (no Domain attribute). The application later makes a Guzzle request to child.example.com using the same CookieJar - Guzzle forwards the sid=secret cookie to the attacker-controlled host, which captures the session token and replays it against example.com to impersonate the PHP backend. No public proof-of-concept exists at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 01, 2026
Cookie scope leakage in guzzlehttp/guzzle before 7.15.1 allows an attacker controlling a child subdomain to receive host-only session cookies intended exclusively for the parent host. Guzzle's CookieJar incorrectly stores the originating request host in the cookie's Domain field rather than marking it host-only, causing ordinary domain-matching logic to forward the cookie to subdomains - exposing session identifiers and authorization tokens. No public exploit identified at time of analysis, but the CVSS 4.0 score of 8.2 reflects high confidentiality impact when the specific exploitation conditions are met.
RemediationAI
Vendor-released patch: 7.15.1. Upgrade guzzlehttp/guzzle to version 7.15.1 or later via Composer (composer require guzzlehttp/guzzle:^7.15.1). The fix introduces a HostOnly boolean marker in cookie storage and enforces exact-host matching for cookies without a valid Domain attribute; persistent jars (FileCookieJar, SessionCookieJar) now validate this marker on load and reject records missing it. The official advisory is at https://github.com/guzzle/guzzle/security/advisories/GHSA-wm3w-8rrp-j577. For applications that cannot upgrade immediately, use a separate CookieJar instance per host or trust boundary - this eliminates cross-host cookie sharing entirely with no other side effects. Alternatively, avoid enabling Guzzle's built-in cookie support (do not pass a CookieJar to the client) and manage cookies manually if the application does not require subdomain cookie sharing. Note that the workarounds require application-level refactoring and may not be feasible for complex API aggregation layers.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Guzzle is a widely-used PHP HTTP client library (cpe:2.3:a:guzzle:guzzle:*:*:*:*:*:*:*:*). Per RFC 6265, a cookie set without a Domain attribute - or with an empty Domain - is 'host-only' and must be returned solely to the exact originating host. Guzzle's CookieJar violated this by storing the request host string in the Domain field and then applying standard domain suffix-matching rules, effectively promoting a host-only cookie to a domain-scoped cookie. This behavior also propagated through FileCookieJar and SessionCookieJar, meaning persisted and reloaded cookie jars retained the widened scope. CWE-201 (Insertion of Sensitive Information Into Sent Data) captures the root cause: the library transmits sensitive cookie material to a recipient - a child host - that the originating server never authorized to receive it.
Know when Guzzle gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network vector with high complexity (requires shared jar across trust boundary and attacker-controlled subdomain); no auth needed; confidentiality-only impact; no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
guzzlehttp/guzzle versions before 7.15.1 fail to preserve host-only cookie scope, storing the request host in the Domain field instead of marking cookies as host-only. Attackers controlling child hosts can receive host-only cookies intended only for parent hosts, potentially disclosing session identifiers and authorization tokens when the same cookie jar is reused across trust boundaries.
Executive ViewAI
guzzlehttp/guzzle before 7.15.1 improperly handles cookie scope, leaking session cookies and authentication tokens to attacker-controlled subdomains. Organizations using this HTTP client library face potential compromise of user sessions and API credentials if an attacker can establish a presence on a child domain.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Host confusion in GuzzleHttp Guzzle before 7.15.2 and 8.0.1 allows remote attackers who can influence a fetched URI to b
Cookie domain scope bypass in Guzzle PHP HTTP client (prior to 7.15.2 and 8.0.1) allows improper cookie sharing via non-
URI fragment leakage in guzzlehttp/guzzle's RedirectMiddleware (versions before 7.15.1) exposes sensitive client-side da
Guzzle is a PHP HTTP client. Rated high severity (CVSS 8.1), this vulnerability is remotely exploitable, no authenticati
Guzzle, an extensible PHP HTTP client. Rated high severity (CVSS 7.7), this vulnerability is remotely exploitable, low a
Guzzle, an extensible PHP HTTP client. Rated high severity (CVSS 7.7), this vulnerability is remotely exploitable, low a
Guzzle is an open source PHP HTTP client. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no
Guzzle is an open source PHP HTTP client. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no
Denial of service in guzzlehttp/guzzle versions before 7.15.1 allows a malicious or compromised upstream server to exhau
Proxy-Authorization header leakage in guzzlehttp/guzzle before 7.14.2 allows origin servers to receive proxy credentials
Host validation bypass in guzzlehttp/psr7 before 2.12.3 enables URI authority confusion attacks against PHP applications
Cookie domain suffix-matching bypass in Guzzle PHP HTTP client (prior to 7.12.3) allows cross-host cookie disclosure, co
EUVD-2026-51845
GHSA-mjrx-74jh-7xgw
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB