CVE-2023-32681
Unintended leak of Proxy-Authorization header in requests
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
Descriptions
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 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.
Requests es una librería HTTP. Desde Requests 2.3.0, Requests ha estado filtrando cabeceras Proxy-Authorization a los servidores de destino cuando se redirige a un endpoint HTTPS. Esto es producto de cómo usamos `rebuild_proxies` para volver a adjuntar la cabecera `Proxy-Authorization` a las peticiones. Para conexiones HTTP enviadas a través del túnel, el proxy identificará la cabecera en la propia petición y la eliminará antes de reenviarla al servidor de destino. Sin embargo, cuando se envía a través de HTTPS, la cabecera `Proxy-Authorization` debe enviarse en la solicitud CONNECT, ya que el proxy no tiene visibilidad sobre la solicitud en túnel. Esto provoca que las solicitudes reenvíen las credenciales del proxy al servidor de destino de forma no intencionada, lo que permite a un actor malicioso filtrar información confidencial. Este problema se ha corregido en la versión 2.31.0.
A flaw was found in the Python-requests package, where it is vulnerable to potentially leaking Proxy-Authorization headers to destination servers, specifically during redirects to an HTTPS origin. This is a product of how rebuild_proxies is used to recompute and reattach the Proxy-Authorization header to requests when redirected. This behavior only affects proxied requests when credentials are supplied in the URL user information component (for example, https://username:password@proxy:8080).
Red Hat Single Sign-On is an integrated sign-on solution, available as a Red Hat JBoss Middleware for OpenShift containerized image. The Red Hat Single Sign-On for OpenShift image provides an authentication server that you can use to log in centrally, log out, and register. You can also manage user accounts for web applications, mobile applications, and RESTful web services. This erratum releases a new image for Red Hat Single Sign-On 7.6.5 for use within the OpenShift Container Platform 3.10, OpenShift Container Platform 3.11, and within the OpenShift Container Platform 4.3 cloud computing Platform-as-a-Service for on-premise or private cloud deployments, aligning with the standalone product release. Issues addressed include a denial of service vulnerability.
CVSS Scores
SSVC
- Decision:Track
Timeline
- 2023-05-11 CVE Reserved
- 2023-05-26 CVE Published
- 2023-07-22 First Exploit
- 2024-12-17 EPSS Updated
- 2025-02-13 CVE Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
CWE
- CWE-200: Exposure of Sensitive Information to an Unauthorized Actor
- CWE-402: Transmission of Private Resources into a New Sphere ('Resource Leak')
CAPEC
References (10)
URL | Date | SRC |
---|---|---|
https://github.com/hardikmodha/POC-CVE-2023-32681 | 2023-07-22 |
URL | Date | SRC |
---|---|---|
https://github.com/psf/requests/commit/74ea7cf7a6a27a4eeb2ae24e162bcc942a6706d5 | 2023-09-17 |
URL | Date | SRC |
---|---|---|
https://github.com/psf/requests/security/advisories/GHSA-j8r2-6x86-q33q | 2023-09-17 | |
https://access.redhat.com/security/cve/CVE-2023-32681 | 2024-01-18 | |
https://bugzilla.redhat.com/show_bug.cgi?id=2209469 | 2024-01-18 |
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Python Search vendor "Python" | Requests Search vendor "Python" for product "Requests" | >= 2.3.0 < 2.31.0 Search vendor "Python" for product "Requests" and version " >= 2.3.0 < 2.31.0" | - |
Affected
| ||||||
Fedoraproject Search vendor "Fedoraproject" | Fedora Search vendor "Fedoraproject" for product "Fedora" | 37 Search vendor "Fedoraproject" for product "Fedora" and version "37" | - |
Affected
|