GHSA-373w-rj84-pv6x SafeURL-Python's hostname blocklist does not block FQDNs
Attackers can bypass hostname blocklists in SafeURL-Python by using FQDNs, enabling SSRF attacks against specifically blocked hosts.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is GHSA-373w-rj84-pv6x?
GHSA-373w-rj84-pv6x is a server-side request forgery vulnerability in SafeURL-Python, published on 29 Jun 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Description
If a hostname was blacklisted, it was possible to bypass the blacklist by requesting the FQDN of the host (e.g. adding . to the end).
Impact
The main purpose of this library is to block requests to internal/private IPs and these cannot be bypassed using this finding. But if a library user had specifically set certain hostnames as blocked, then an attacker would be able to circumvent that block to cause SSRFs to request those hostnames.
Patches
Fixed by https://github.com/IncludeSecurity/safeurl-python/pull/6
Credit
Which versions are affected by GHSA-373w-rj84-pv6x?
2 open source packages ship an affected version, including SafeURL-Python and safeurl-python.
| Package | Affected | Fixed in |
|---|---|---|
SafeURL-Python PyPI | All versions | 1.3 |
safeurl-python PyPI | All versions | 1.3 |
How do I fix GHSA-373w-rj84-pv6x?
Upgrade SafeURL-Python to 1.3 or later.
Upgrade, and send outbound requests through an allow-list that blocks internal addresses. More about Server-side request forgery.
Is GHSA-373w-rj84-pv6x being exploited?
There is no known exploitation of GHSA-373w-rj84-pv6x in the wild and no public exploit code.