CVE-2022-31043: Fix failure to strip Authorization header on HTTP downgrade in Guzzle
Impact
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.
Patches
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.
Workarounds
An alternative approach would be to use your own redirect middleware, rather than ours, if you are unable to upgrade. If you do not require or expect redirects to be followed, one should simply disable redirects all together.
References
RFC9110 Section 15.4
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.
Other sources
Fix failure to strip Authorization header on HTTP downgrade
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.
Affected Software
Remediation
Patch Available
Event History
Frequently Asked Questions
What is CVE-2022-31043?
CVE-2022-31043 is a vulnerability that allows the `Authorization` header to be forwarded on an HTTP downgrade.
What is the impact of CVE-2022-31043?
The impact of CVE-2022-31043 is that sensitive `Authorization` headers may be exposed during an HTTP downgrade.
Which software is affected by CVE-2022-31043?
The software affected by CVE-2022-31043 includes Guzzlephp Guzzle versions up to 6.5.7, Guzzlephp Guzzle versions between 7.0.0 and 7.4.4, Drupal versions between 9.2.0 and 9.2.21, Drupal versions between 9.3.0 and 9.3.16, Drupal 9.4.0-alpha1, Drupal 9.4.0-beta1, Drupal 9.4.0-rc1, and Debian Debian Linux 11.0.
What is the severity of CVE-2022-31043?
The severity of CVE-2022-31043 is high.
How do I fix CVE-2022-31043?
To fix CVE-2022-31043, update to Guzzlephp Guzzle version 7.4.5 or higher, update to Drupal versions 9.2.22, 9.3.17, or 9.4.0, or update Debian Debian Linux to a fixed version.