CVE-2023-32681
Published: 26 May 2023
Summary
CVE-2023-32681 is a medium-severity Exposure of Sensitive Information to an Unauthorized Actor (CWE-200) vulnerability in Python Requests. Its CVSS base score is 6.1 (Medium).
Operationally, ranked in the top 9.2% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.
Deeper analysis
The Requests HTTP library for Python has contained an information disclosure vulnerability since version 2.3.0 in which Proxy-Authorization headers are leaked to destination servers during redirects to HTTPS endpoints. The root cause is the rebuild_proxies logic that reattaches the header; while proxies correctly strip it from cleartext HTTP requests, they have no visibility into tunneled HTTPS CONNECT requests, so the credentials are forwarded unintentionally to the target server.
An attacker who can induce a victim application using Requests to follow a redirect to an HTTPS URL under their control can thereby obtain the proxy credentials, achieving exfiltration of sensitive authentication material with no other user interaction required beyond the redirect.
The issue is resolved in Requests 2.31.0; the project advisory, commit, and downstream distributions such as Debian LTS and Fedora document the patch and recommend immediate upgrade for any deployment still using an earlier version. The associated EPSS score has remained low and stable near 0.06 with no material increase after disclosure.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2023-0227
Vulnerability details
Requests is a HTTP library. Since Requests 2.3.0, Requests has been leaking Proxy-Authorization headers to destination servers when redirected to an HTTPS endpoint. This is a product of how we use `rebuild_proxies` to reattach the `Proxy-Authorization` header to requests. For…
more
HTTP connections sent through the tunnel, the proxy will identify the header in the request itself and remove it prior to forwarding to the destination server. However when sent over HTTPS, the `Proxy-Authorization` header must be sent in the CONNECT request as the proxy has no visibility into the tunneled request. This results in Requests forwarding proxy credentials to the destination server unintentionally, allowing a malicious actor to potentially exfiltrate sensitive information. This issue has been patched in version 2.31.0.
- CWE(s)
Related Threats
No named actor attribution yet. ATT&CK technique mapping in progress for this CVE.
Affected Assets
Mitigating Controls
Likely Mitigating Controls AI
Per-CVE control mapping for this CVE has not run yet; the list below is derived from the weakness types (CWEs) cited in the NVD entry.
Automated marking applies security attributes to system outputs, making it harder for attackers to exploit unmarked sensitive information leading to unauthorized exposure.
Proper attribute retention and permitted-value enforcement limits unauthorized actors from accessing sensitive information lacking correct labels.
Prevents unauthorized exposure of sensitive information by prohibiting untrusted external systems from processing or storing it.
By enforcing authorization matching prior to sharing, the control reduces the risk of exposing sensitive information to unauthorized actors.
Review and removal of nonpublic information from publicly accessible systems directly prevents exposure of sensitive data to unauthorized actors.
Data mining protection mechanisms detect and block unauthorized bulk extraction of sensitive data, directly mitigating exposure to unauthorized actors.
Literacy training teaches users to recognize and avoid actions that result in unauthorized exposure of sensitive information.
Retaining and monitoring training records confirms personnel have completed privacy and security awareness training on handling sensitive data, reducing the chance of unauthorized exposure due to lack of knowledge.