Tainted flow: 'req' from os.environ.get (line 32, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
if data is not None: req.add_header("Content-Type", "application/json") try: with urllib.request.urlopen(req, timeout=30) as r: return r.status, r.read().decode("utf-8") except urllib.error.HTTPError as e: return e.code, e.read().decode("utf-8")- Confidence
- 96% confidence
- Finding
- The request destination is derived from the untrusted DOGEAR_BASE_URL environment variable and then used directly in urllib.request.urlopen. In an agent/skill context, environment variables may be attacker-controlled or influenced by the invoking platform, so this can redirect all memory contents and bearer tokens to an arbitrary host, causing SSRF and credential exfiltration.
