Security Resilience

CVE-2023-32681

Info Disclosure in Python Requests 2.3.0 – 2.31.0

Published
26 May 2023
Modified
13 February 2025
Patch / advisory
CVSS Score v3.1 6.1
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:N/A:N
EPSS Score 0.030 87th percentile
Risk Priority 53 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

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 13% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

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.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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

CVEs Like This One

CVE-2023-45803Same product: Fedoraproject Fedora
CVE-2023-43804Same product: Fedoraproject Fedora
CVE-2023-43796Same product: Fedoraproject Fedora
CVE-2023-44271Same product: Fedoraproject Fedora
CVE-2023-45143Same product: Fedoraproject Fedora
CVE-2023-39999Same product: Fedoraproject Fedora
CVE-2023-41752Same product: Fedoraproject Fedora
CVE-2023-5551Same product: Fedoraproject Fedora
CVE-2026-44431Same vendor: Python
CVE-2026-25645Same product: Python Requests

Affected Assets

python
requests
2.3.0 — 2.31.0
fedoraproject
fedora
37

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.

addresses: CWE-200

Automated marking applies security attributes to system outputs, making it harder for attackers to exploit unmarked sensitive information leading to unauthorized exposure.

addresses: CWE-200

Proper attribute retention and permitted-value enforcement limits unauthorized actors from accessing sensitive information lacking correct labels.

addresses: CWE-200

Prevents unauthorized exposure of sensitive information by prohibiting untrusted external systems from processing or storing it.

addresses: CWE-200

By enforcing authorization matching prior to sharing, the control reduces the risk of exposing sensitive information to unauthorized actors.

addresses: CWE-200

Review and removal of nonpublic information from publicly accessible systems directly prevents exposure of sensitive data to unauthorized actors.

addresses: CWE-200

Data mining protection mechanisms detect and block unauthorized bulk extraction of sensitive data, directly mitigating exposure to unauthorized actors.

addresses: CWE-200

Literacy training teaches users to recognize and avoid actions that result in unauthorized exposure of sensitive information.

addresses: CWE-200

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.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

blocks

A.5.10 only requires awareness, a topic-specific acceptable-use policy stating expected behaviours/monitoring, and procedures referencing classification and other controls; per the owner's explicit rule on labelling and similar dependency-style clauses, this does not itself prevent exposure (CWE-200) unless access/DLP/etc. act on it.

blocks

Requiring the return of all physical and electronic assets plus secure deletion of organizational data from personal devices reduces the chance that sensitive information remains accessible to departing personnel.

blocks

A.5.12 only defines and communicates a classification scheme so that protection needs can be understood; per the owner's explicit rule, labeling/classification does not itself prevent exposure and requires other controls (e.g. access enforcement) to act on it.

blocks

By requiring classification labels and metadata on all information assets, the control makes it harder for sensitive data to be inadvertently exposed because downstream systems and users can recognize and enforce handling rules based on those labels.

blocks

Requiring encryption, access controls, and recipient authentication for transfers directly reduces the chance that sensitive data reaches an unauthorized observer.

blocks

Secure delivery, protected storage, and confidentiality of allocation records limit exposure of authentication material to unauthorized observers.

Hardening callouts derived

DISA STIG baselines are authored against specific weaknesses. Where this CVE cites a broad weakness class, the mapping is not asserted at that abstraction (owner ruling, 2026-09-25: grade only at Base and below), so no rule is shown here rather than a rule shown against the wrong grain.

References