Tainted flow: 'img_url' from requests.post (line 227, network input) → requests.get (network output)
Medium
- Category
- Data Flow
- Content
if "data" in data and len(data["data"]) > 0: img_url = data["data"][0].get("url") if img_url: img_data = requests.get(img_url, timeout=60).content with open(output_path, "wb") as f: f.write(img_data) return True- Confidence
- 89% confidence
- Finding
- The code blindly fetches img_url returned by a remote API and downloads it without validating the scheme, host, content type, or size. If the upstream service is compromised or returns attacker-controlled URLs, the skill could be abused for SSRF-like outbound requests or unexpected large downloads into local storage.
