Tainted flow: 'req' from os.environ.get (line 469, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
headers["Content-Type"] = "application/json" try: req = urllib.request.Request(url, data=data, headers=headers, method=method) with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: note_release(resp.headers) raw = resp.read().decode("utf-8") out = json.loads(raw) if raw else {"success": True, "data": None}- Confidence
- 96% confidence
- Finding
- The request destination is derived from base_url(), which accepts ARI_BASE_URL from the environment, and the same request includes the Bearer API key in the Authorization header. If an attacker can influence environment variables or invocation context, they can redirect authenticated requests to an attacker-controlled host and exfiltrate the API key and request data.
