Guzzle can send a cookie that was set for an IP address to other hosts whose names end in that address, such as evil.192.168.0.1. A host like that can also plant a cookie that Guzzle later sends to the address itself. Depending on the service, that can leak a cookie, let an attacker inject one, or fix a user's session.
Who is affected
Apps on guzzlehttp/guzzle before 7.12.3 that use Guzzle's cookie support, reuse one cookie jar across more than one host or trust boundary, and hold cookies scoped to an IP address. The Guzzle advisory says names like that can't be registered publicly, so an attacker needs some control over name lookups. That's realistic on private, split-horizon, container or development networks. Apps that don't use Guzzle's cookies, or use a separate jar per host, aren't affected.
What to do
Update to 7.12.3 or later. The fix only sends IP-address cookies back to the exact host. Until you can update, use a separate cookie jar for each host or trust boundary, and avoid new Client(['cookies' => true]) on a client that talks to hosts you trust differently.
Some unusual ways of writing an IP address still got through this fix. See GHSA-f7vp-7xgx-4w4r, fixed in 7.15.2.
Reported by GrahamCampbell.