Skip to main content

Guzzle HTTP Client CVE-2026-67354

| EUVDEUVD-2026-51825 HIGH
Insertion of Sensitive Information Into Sent Data (CWE-201)
2026-08-01 VulnCheck GHSA-mqq9-gxg5-m58g
8.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify PHP app with Guzzle referer option enabled
  2. Delivery
    Craft or influence initial request URI to contain sensitive fragment
  3. Exploit
    Trigger same-scheme HTTP redirect to attacker-controlled destination
  4. Execution
    Receive Referer header at attacker server
  5. Impact
    Extract sensitive fragment value from header or access logs

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 three simultaneous conditions: (1) the Guzzle client must be configured with allow_redirects => ['referer' => true] explicitly set - this option is disabled by default and must be deliberately enabled by the developer; (2) the initial request URI must contain a sensitive value in its fragment portion (after '#'), such as an access token, one-time password, OAuth state parameter, or session identifier placed there by the calling application; and (3) the HTTP response must be a same-scheme redirect (e.g., HTTPS to HTTPS, not HTTPS to HTTP) to a destination under attacker control or with lower trust than the originating host. Applications that leave the referer option at its default of false, do not embed sensitive data in URI fragments, do not follow redirects, or only redirect within the same trust boundary are not vulnerable. Exploitation is limited to server-side PHP applications making outbound HTTP requests - end-user browsers are not directly affected.

Impact

The CVSS 4.0 score of 8.2 must be contextualized against the AT:P (specific attack requirements present) and AC:H (high complexity) metrics - exploitation requires a non-default configuration, sensitive data in URI fragments, and a same-scheme redirect to an attacker-controlled destination, all simultaneously. No CISA KEV listing exists and no confirmed public exploit or POC has been identified, making opportunistic mass exploitation unlikely. The VC:H rating is justified when all conditions align, as entire authentication tokens or one-time secrets could be disclosed to an unintended third party. Real-world risk is meaningfully lower than the headline score for most deployments where the referer option is disabled by default. Organizations should prioritize patching in applications that explicitly enable the referer redirect option or that embed sensitive data in URI fragments, as those are the only deployments at meaningful risk.

Exploit ScenarioDerived

An attacker operates a web server that issues same-scheme HTTPS redirects to attacker-controlled infrastructure. A PHP application using Guzzle with allow_redirects.referer enabled requests a URI such as https://trusted.example.com/reset#token=abc123; Guzzle follows the redirect and transmits a Referer header containing the full URI including the fragment to the attacker's server, where the token is readable from access logs or application code. No public exploit code has been identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 01, 2026

URI fragment leakage in guzzlehttp/guzzle's RedirectMiddleware (versions before 7.15.1) exposes sensitive client-side data to unintended redirect destinations when the non-default allow_redirects.referer option is explicitly enabled. An attacker who controls a same-scheme redirect target can harvest one-time login tokens, OAuth state values, or access tokens embedded in URI fragments from the Referer header included in the redirected request. No public exploit has been identified at time of analysis, but the CVSS 4.0 score of 8.2 with AC:H and AT:P accurately reflects the real-world complexity - exploitation requires three simultaneous non-trivial conditions to align.

RemediationAI

Upgrade guzzlehttp/guzzle to version 7.15.1 or later via Composer (composer require guzzlehttp/guzzle:^7.15.1); the fix is confirmed in commit 7b68220d6543f6f80fe62e633361fc9d4ead14d4 and pull request https://github.com/guzzle/guzzle/pull/3901, which strips URI fragments before Referer header generation. If immediate upgrade is not possible, ensure the allow_redirects.referer option is not set to true - its default value of false makes the application unexploitable via this vector. Audit all Guzzle request call sites for explicit 'referer' => true settings and revert them to false or remove them until the patch is applied; note that this disables automatic Referer header generation on redirects, which may affect server-side analytics or logging that depends on that header as a side effect.

Affected VersionsENISA

guzzle 0 <7.15.1

Affected Packages

composer guzzlehttp/guzzle fix: 7.15.1
euvd guzzle fix: 7.15.1

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 the dominant PHP HTTP client library, distributed via Composer as guzzlehttp/guzzle (CPE: cpe:2.3:a:guzzle:guzzle:*:*:*:*:*:*:*:*). The affected component is RedirectMiddleware, which handles automatic HTTP redirect following. Per RFC 7231, URI fragments (the '#'-delimited suffix) are client-side constructs never transmitted to servers in HTTP request targets - they exist solely for local navigation. CWE-201 (Insertion of Sensitive Information Into Sent Data) captures the root cause: Guzzle's Referer generation logic failed to strip the fragment before copying the URI into the Referer header for same-scheme (e.g., HTTPS to HTTPS) redirects, while already correctly stripping user credentials. The vulnerability affects both the cURL and stream handler backends. The fix in 7.15.1 extends the existing sanitization to strip the fragment before Referer header generation, matching standard browser behavior.

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

Vendor (VulnCheck) PRIMARY 8.2 HIGH
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
vuln.today AI 5.9 MEDIUM

Non-default referer configuration and attacker-controlled same-scheme redirect required (AC:H, PR:N); only confidentiality impact as no data is altered or service disrupted.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat 5.9 MEDIUM

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 01, 2026 - 13:01 EUVD
CVE Published
Aug 01, 2026 - 12:22 cve.org
HIGH 8.2

DescriptionCVE.org

guzzlehttp/guzzle versions before 7.15.1 contain an information disclosure vulnerability in RedirectMiddleware. When the optional allow_redirects.referer setting is enabled, the middleware copies the URI fragment (the portion after '#') from the referring request into the generated Referer header when following a same-scheme redirect (e.g., HTTPS to HTTPS). An attacker who controls the redirect destination can read this fragment from the incoming Referer header, potentially disclosing one-time login secrets, access tokens, state values, or other sensitive client data to a server never meant to receive it. The referer setting is disabled by default. Fixed in 7.15.1, which strips the fragment before generating the Referer value.

Executive ViewAI

Why It Matters

guzzlehttp/guzzle versions prior to 7.15.1 leak sensitive URI fragments-including authentication tokens, OAuth state values, and access credentials-to redirect destinations when the non-default allow_redirects.referer option is enabled, creating credential compromise risk for any organization using this HTTP client library if attackers can control redirect targets.

Business Impact: High
Compensating Controls

Vendor-released patch: guzzlehttp/guzzle version 7.15.1 or later. Until patched, disable the allow_redirects.referer configuration option and maintain a whitelist of trusted redirect destinations to restrict attacker-controlled targets.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
High
dominant PHP HTTP client used across Laravel, Symfony, and most major PHP frameworks
Social Media
6
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Guzzle

View all
CVE-2026-69246 HIGH POC
7.2 Aug 03

Host confusion in GuzzleHttp Guzzle before 7.15.2 and 8.0.1 allows remote attackers who can influence a fetched URI to b

CVE-2026-69245 MEDIUM POC
6.5 Aug 03

Cookie domain scope bypass in Guzzle PHP HTTP client (prior to 7.15.2 and 8.0.1) allows improper cookie sharing via non-

CVE-2026-67355 HIGH
8.2 Aug 01

Cookie scope leakage in guzzlehttp/guzzle before 7.15.1 allows an attacker controlling a child subdomain to receive host

CVE-2022-29248 HIGH
8.1 May 25

Guzzle is a PHP HTTP client. Rated high severity (CVSS 8.1), this vulnerability is remotely exploitable, no authenticati

CVE-2022-31091 HIGH
7.7 Jun 27

Guzzle, an extensible PHP HTTP client. Rated high severity (CVSS 7.7), this vulnerability is remotely exploitable, low a

CVE-2022-31090 HIGH
7.7 Jun 27

Guzzle, an extensible PHP HTTP client. Rated high severity (CVSS 7.7), this vulnerability is remotely exploitable, low a

CVE-2022-31043 HIGH
7.5 Jun 10

Guzzle is an open source PHP HTTP client. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no

CVE-2022-31042 HIGH
7.5 Jun 10

Guzzle is an open source PHP HTTP client. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no

CVE-2026-67353 MEDIUM
6.9 Aug 01

Denial of service in guzzlehttp/guzzle versions before 7.15.1 allows a malicious or compromised upstream server to exhau

CVE-2026-67339 MEDIUM
6.9 Aug 01

Proxy-Authorization header leakage in guzzlehttp/guzzle before 7.14.2 allows origin servers to receive proxy credentials

CVE-2026-59882 MEDIUM
6.5 Jul 08

Host validation bypass in guzzlehttp/psr7 before 2.12.3 enables URI authority confusion attacks against PHP applications

CVE-2026-59883 MEDIUM POC
6.1 Jul 08

Cookie domain suffix-matching bypass in Guzzle PHP HTTP client (prior to 7.12.3) allows cross-host cookie disclosure, co

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy