Python urllib.parse SSRF Vulnerability via Improper Host Validation
CVE-2024-11168 Published on November 12, 2024
Improper validation of IPv6 and IPvFuture addresses
The urllib.parse.urlsplit() and urlparse() functions improperly validated bracketed hosts (`[]`), allowing hosts that weren't IPv6 or IPvFuture. This behavior was not conformant to RFC 3986 and potentially enabled SSRF if a URL is processed by more than one URL parser.
Vulnerability Analysis
CVE-2024-11168 is exploitable with network access, and does not require authorization privileges or user interaction. This vulnerability is consided to have a high level of attack complexity. The potential impact of an exploit of this vulnerability is considered to have no impact on confidentiality, with no impact on integrity, and no impact on availability.
Weakness Type
What is a SSRF Vulnerability?
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination. By providing URLs to unexpected hosts or ports, attackers can make it appear that the server is sending the request, possibly bypassing access controls such as firewalls that prevent the attackers from accessing the URLs directly. The server can be used as a proxy to conduct port scanning of hosts in internal networks, use other URLs such as that can access documents on the system (using file://), or use other protocols such as gopher:// or tftp://, which may provide greater control over the contents of requests.
CVE-2024-11168 has been classified to as a SSRF vulnerability or weakness.
Products Associated with CVE-2024-11168
You can be notified by email with stack.watch whenever vulnerabilities like CVE-2024-11168 are published in these products:
Affected Versions
Python Software Foundation CPython:- Before 3.9.21 is affected.
- Version 3.10.0 and below 3.10.16 is affected.
- Version 3.11.0 and below 3.11.4 is affected.
- Version 3.12.0a1 and below 3.12.0b1 is affected.
- Before 3.11.4 is affected.
- Version 3.12.0a1 and below 3.12.0b1 is affected.
Exploit Probability
EPSS (Exploit Prediction Scoring System) scores estimate the probability that a vulnerability will be exploited in the wild within the next 30 days. The percentile shows you how this score compares to all other vulnerabilities.