Tainted flow: 'url' from requests.get (line 117, network input) → requests.get (network output)
Medium
- Category
- Data Flow
- Content
def download_discord_image(url: str, output_path: str) -> str: """Download image from Discord (direct URL).""" resp = requests.get(url) resp.raise_for_status() with open(output_path, "wb") as f:- Confidence
- 95% confidence
- Finding
- This function fetches an arbitrary user-supplied URL with no allowlist, scheme restriction, timeout, or size/content validation, creating an SSRF-like outbound fetch primitive. In an agent or automation context, an attacker could cause connections to internal services or download untrusted content to local storage.
