Tainted flow: 'req' from os.environ.get (line 36, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
method="POST", ) try: with urllib.request.urlopen(req, timeout=30) as resp: return json.loads(resp.read().decode()) except urllib.error.HTTPError as e: body = e.read().decode()- Confidence
- 94% confidence
- Finding
- The CLI constructs its destination URL from the MCP_SERVER_URL environment variable and then sends requests to it with urllib.request.urlopen without enforcing HTTPS, validating the host, or constraining the destination. In this skill, that is especially dangerous because the same client transmits exchange API credentials and trading commands, so an attacker who can influence the environment can redirect secrets and order flow to a malicious server or unintended internal endpoint.
