Tainted flow: 'parse_result_url' from requests.post (line 183, network input) → requests.get (network output)
Medium
- Category
- Data Flow
- Content
if download_result: parse_result_url = result.get('result', {}).get('parse_result_url') if parse_result_url: parse_response = requests.get(parse_result_url) parse_response.encoding = 'utf-8' result['parse_result'] = parse_response.json() return result- Confidence
- 94% confidence
- Finding
- The code takes `parse_result_url` directly from a remote API response and performs `requests.get()` on it without validating the scheme, host, or path. This creates an SSRF-style trust boundary issue: if the upstream API, response path, or network traffic is compromised, the client can be induced to fetch arbitrary URLs, including internal services or unexpected external endpoints. In this skill context, the risk is somewhat elevated because the tool is explicitly designed to process user-supplied documents and automatically follow service-provided result URLs.
