Tainted flow: 'req' from os.environ.get (line 1459, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
headers = {"Authorization": "Bearer " + require_key(), "User-Agent": user_agent()} try: req = urllib.request.Request(url, headers=headers, method="GET") with urllib.request.urlopen(req, timeout=TIMEOUT_SEC) as resp: note_release(resp.headers) ctype = resp.headers.get("Content-Type", "") body = resp.read()- Confidence
- 80% confidence
- Finding
- This download path sends the Bearer API key to the URL derived from base_url(), which can be redirected to a non-official host when both ARI_BASE_URL and ARI_ALLOW_CUSTOM_BASE are set. Although that requires explicit local environment manipulation, in an agent or shell-integrated context such variables may be injected or inherited, turning this into credential exfiltration and arbitrary file content delivery from an attacker-controlled service.
