← back
CVE-2022-31043

Fix failure to strip Authorization header on HTTP downgrade in Guzzle

CVSS 7.5 HIGHEPSS 1.8%CWE-200
In short

Guzzle, a popular PHP HTTP client, was leaking sensitive Authorization headers when automatically following redirects from secure HTTPS connections to insecure HTTP connections. This exposed login credentials and authentication tokens to potential attackers.

Technical detail

When Guzzle follows a redirect from HTTPS to HTTP, the Authorization header is not stripped before the downgrade, violating the same-host same-scheme principle applied to host changes. An attacker controlling a redirect target can intercept credentials in plaintext via network sniffing. Requires the application to follow redirects automatically, which is the default behavior.

Summary generated and translated by AI from the official description.
Guzzle is an open source PHP HTTP client. In affected versions `Authorization` headers on requests are sensitive information. On making a request using the `https` scheme to a server which responds with a redirect to a URI with the `http` scheme, we should not forward the `Authorization` header on. This is much the same as to how we don't forward on the header if the host changes. Prior to this fix, `https` to `http` downgrades did not result in the `Authorization` header being removed, only changes to the host. Affected Guzzle 7 users should upgrade to Guzzle 7.4.4 as soon as possible. Affected users using any earlier series of Guzzle should upgrade to Guzzle 6.5.7 or 7.4.4. Users unable to upgrade may consider an alternative approach which would be to use their own redirect middleware. Alternately users may simply disable redirects all together if redirects are not expected or required.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Affected products
guzzle · guzzle

Want to know if your infrastructure is exposed to this?

Talk to TrueHacking →