Failure to strip Authentication header on HTTP downgrade in guzzle/guzzle
Jun 4th 2022
The Guzzle redirect middleware fails to strip the
Authorization header when a redirect downgrades from https to http. The middleware currently only checks if the host has changed.
Potential leakage of the secret to a man in the middle.
@jamieslome, can you please approve this?
As requested by Graham above ☝️
@grahamcampbell - let me know when you are ready with a fix, and I will confirm this against the report as well 👍
We have been allocated CVE-2022-31043. This NOT yet public, at this time.
Please find below the draft description (@jamieslome - please review this):
Authentication 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
Authentication 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,
http downgrades did not result in the
Authentication 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.
An alternative approach would be to use your own retry middleware, rather than ours, if you are unable to upgrade.
For more information
If you have any questions or comments about this advisory, please get in touch with us in
#guzzle on the PHP HTTP Slack. Do not report additional security advisories in that public channel, however - please follow our vulnerability reporting process.
@grahamcampbell - LGTM 👍
Are we able to add the huntr.dev report URL as a reference?
@jamieslome I am trying to mark this as fixed, by me, but it won't let me. Can you mark it as fixed, with the same details as I did for https://huntr.dev/bounties/3cbe222a-e6da-4347-85a2-433152c0ba15/?