Skip to content
jproxx
← Back to the blog

Security Advisory: Two Vulnerabilities in the Guzzle PHP HTTP Client (CVE-2026-55568 and CVE-2026-55767) — Relevant Because of Its Spread Across PHP Libraries

23 June 2026 · jproxx Security

Guzzle is one of the most widely used HTTP clients in the PHP ecosystem and is relied upon by countless applications, frameworks and extensions to make outgoing HTTP requests. Because the library is so frequently pulled in as an indirect dependency through the Composer package manager, it is present in many projects without the operators ever having consciously chosen it — and in the world of WordPress and Shopware, too, it appears in numerous plugins, modules and integrations. It is precisely for this reason that the two vulnerabilities described below deserve attention even though their rating is only moderate: their reach stems less from the severity of the individual flaw than from the sheer prevalence of the affected component. Both vulnerabilities are fixed in Guzzle 7.12.1.

CVE-2026-55568 — Unencrypted Traffic to the HTTPS Proxy

In certain configurations, traffic that should be protected by TLS on the hop to the proxy is transmitted in cleartext in all versions before 7.12.1. Specifically, the proxy credentials — that is, the Proxy-Authorization header or the credentials stored in the proxy URL — are sent without encryption, and the target host and port of the tunnelled HTTPS request are exposed as well. An application is affected when it issues its requests through Guzzle’s default cURL handlers, configures an https:// proxy in the expectation that the connection to the proxy itself is encrypted, and at the same time runs on a version of libcurl older than 7.50.2, which silently treats an https:// proxy as an unencrypted http:// proxy. The National Vulnerability Database rates the vulnerability at a CVSS score of 5.9, and operators should update Guzzle to version 7.12.1 or newer and, where possible, additionally run an up-to-date version of libcurl.

Sources: National Vulnerability Database — CVE-2026-55568 · GitHub Security Advisory GHSA-wpwq-4j6v-78m3

CVE-2026-55767 — Faulty Domain Check in the CookieJar

In all versions before 7.12.1, Guzzle’s CookieJar incorrectly accepts cookies whose Domain attribute consists only of a single dot or is padded with whitespace. Because the internal processing strips leading dots from the cookie domain and thereby normalises such values to an empty string, while the validation only rejected a strictly empty domain, cookies of this kind could be stored and subsequently treated as if they matched any request host whatsoever. When an application uses a shared cookie store and with it also contacts an attacker-controlled endpoint, that endpoint can set a cookie which Guzzle later sends along to entirely unrelated hosts, which — depending on how the downstream services interpret it — enables cookie injection or session fixation. The National Vulnerability Database rates the vulnerability at a CVSS score of 5.8, and here, too, updating to version 7.12.1 is the decisive countermeasure.

Sources: National Vulnerability Database — CVE-2026-55767 · GitHub Security Advisory GHSA-cwxw-98qj-8qjx

Why this may concern you as well

Even if you do not consciously use Guzzle, the library is very likely present as an indirect dependency in your project, because many common packages require it in turn. Whether and in which version Guzzle is included is most reliably determined from the composer.lock file or with the command composer show guzzlehttp/guzzle; anyone who wants to find out which package pulls the dependency in at all can use composer why guzzlehttp/guzzle for that purpose. Afterwards, make sure that at least version 7.12.1 is installed and, if necessary, trigger an update via composer update guzzlehttp/guzzle.

Not sure whether you’re affected? Get in touch.


This advisory is provided for security awareness. The official advisories from the Guzzle project and the sources linked above always take precedence.