Tainted flow: 'audio_url' from requests.post (line 36, network input) → requests.get (network output)
Medium
- Category
- Data Flow
- Content
).json() audio_url = result["result"]["audio_url"] audio_data = requests.get(audio_url).content with open(output_path, 'wb') as f: f.write(audio_data)- Confidence
- 91% confidence
- Finding
- The code trusts audio_url returned by an external API and immediately fetches it with requests.get, creating an SSRF-style trust boundary issue. If the upstream service is compromised or returns an unexpected URL, the script could be induced to contact arbitrary hosts and download untrusted content.
