Tainted flow: 'req' from os.environ.get (line 35, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
body = json.dumps(data).encode() if data else None req = urllib.request.Request(url, data=body, method=method) req.add_header("Content-Type", "application/json") with urllib.request.urlopen(req, timeout=30) as resp: if resp.status == 204: return None return json.loads(resp.read())- Confidence
- 91% confidence
- Finding
- The benchmark builds outbound requests using BASE_URL from the AGENTMEMO_URL environment variable and then sends benchmark data to that destination without validation. In a typical deployment this is intended for localhost, but if the environment variable is altered the script can exfiltrate stored task content, queries, and benchmark metadata to an attacker-controlled service or unexpected internal host.
