Tainted flow: 'req' from os.environ.get (line 111, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
req_body = json.dumps(data).encode("utf-8") req = urllib.request.Request(url, data=req_body, headers=headers, method=method.upper()) with urllib.request.urlopen(req, timeout=timeout) as resp: return json.loads(resp.read().decode("utf-8"))- Confidence
- 92% confidence
- Finding
- The request destination is influenced by environment-controlled configuration via TAPD_API_BASE_URL, and the same request carries TAPD credentials in Authorization headers. If an attacker can influence the environment or deployment config, they can redirect authenticated requests to an arbitrary host and exfiltrate TAPD access tokens or basic-auth credentials, which is an SSRF/credential-leak risk rather than a generic network call issue.
