Guzzle's cookie jar accepted cookies whose Domain attribute is made only of dots, and then treated them as matching every host. A server your app talks to could set a cookie that Guzzle later sends to unrelated hosts that use the same jar.
Depending on how those other services read the cookie, this can lead to cookie injection or session fixation (making a victim use a session the attacker chose). See the Guzzle advisory and the fix.
Who is affected
Apps that use Guzzle's cookie support and share one jar between hosts they trust and hosts an attacker could control, such as URLs users supply. That includes:
new Client(['cookies' => true]), which creates one shared jar for the client- one
CookieJarinstance passed to requests for different hosts
Apps that don't use cookies in Guzzle, or keep a separate jar for each origin or trust boundary, aren't affected.
What to do
Update guzzlehttp/guzzle to 7.12.1. If you can't update yet, Guzzle's advice is to use a separate cookie jar for each origin or trust boundary, or turn off cookie handling for requests to untrusted hosts. Avoid 'cookies' => true on clients that talk to hosts with different trust levels.
Reported by Ilia Alshanetsky.