CVE-2026-55767
Guzzle: Dot-Only Cookie Domains Match All Hosts in guzzlehttp/guzzle
In short
Guzzle's cookie handling has a flaw where cookies with dot-only or whitespace-padded domain values are accepted and treated as matching any website. An attacker can exploit this to inject cookies that get sent to unrelated sites when using a shared cookie jar.
Technical detail
The vulnerability exists in SetCookie::matchesDomain() and SetCookie::validate() where dot-only domain attributes are normalized to empty strings and not properly rejected, allowing cookies to match any request host. An attacker-controlled origin can inject malicious cookies into a shared CookieJar that are subsequently transmitted to unrelated hosts, enabling cookie injection or session fixation attacks against downstream services.
Summary generated and translated by AI from the official description.
Guzzle is an extensible PHP HTTP client. Prior to 7.12.1, CookieJar incorrectly accepts cookies with a dot-only Domain attribute and whitespace-padded variants. SetCookie::matchesDomain() removes leading dots from the cookie domain, normalizing dot-only values to the empty string; SetCookie::validate() only rejected a strictly empty domain, so these cookies could be stored and the empty normalized domain was treated as matching any request host. An attacker-controlled origin that an application requests with a shared cookie jar can therefore set a cookie that Guzzle later sends to unrelated hosts using the same jar. This may allow cookie injection or session fixation against downstream services, depending on how those services interpret the injected cookie. This vulnerability is fixed in 7.12.1.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N