Tainted flow: 'request' from os.environ.get (line 58, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
) try: with urllib.request.urlopen(request) as response: return json.loads(response.read().decode("utf-8")) except urllib.error.HTTPError as error: response_text = error.read().decode("utf-8")- Confidence
- 97% confidence
- Finding
- The script sends a POST request to a URL derived from environment variables (LANGUAGE_SPRINT_API_BASE_URL or APP_BASE_URL) without validating or restricting the destination. Because the payload contains user learning-profile data, a tampered environment can redirect sensitive data to an attacker-controlled endpoint, creating a clear SSRF/data-exfiltration risk in deployment or CI environments.
