Tainted flow: 'upload_url' from requests.post (line 68, network input) → requests.put (network output)
Medium
- Category
- Data Flow
- Content
} with open(file_path, "rb") as f: resp = requests.put(upload_url, headers=oss_headers, data=f, timeout=120) if resp.status_code not in (200, 201): raise RuntimeError(f"OSS upload failed: {resp.status_code}, {resp.text}")- Confidence
- 82% confidence
- Finding
- The upload destination URL is derived from server-provided bucket_name/object_key and then used directly in requests.put, which can turn the client into a blind file exfiltration primitive if the init endpoint is compromised or misbehaves. In this skill context, the script uploads arbitrary local files, so an unvalidated server-directed destination increases the risk of sending user-selected content to an unintended storage location.
