Tainted flow: 'upload_url' from requests.post (line 148, network input) → requests.put (network output)
Medium
- Category
- Data Flow
- Content
file_id = upload_info.data.file_id with open(file_path, 'rb') as f: requests.put(upload_url, data=f) return file_id else:- Confidence
- 89% confidence
- Finding
- The code blindly trusts an upload_url returned by an external service/SDK and immediately performs requests.put(upload_url, data=f) with the contract file contents. If server_url is misconfigured, compromised, or pointed at an attacker-controlled endpoint, this can exfiltrate sensitive contract documents to an arbitrary destination, making the skill context especially sensitive because it handles legal agreements and PII.
