Tainted flow: 'req' from os.environ.get (line 180, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
req.add_header("X-Skill-Id", SKILL_ID) try: with urllib.request.urlopen(req, timeout=timeout) as resp: raw = resp.read().decode("utf-8") except urllib.error.HTTPError as e: body_text = e.read().decode("utf-8", errors="replace")- Confidence
- 95% confidence
- Finding
- The MCP tool-call path sends tool arguments plus a bearer user_id to a server selected by the environment-controlled SOCIAL_PROXY_BASE. Because this request carries both user data and authorization material, redirecting it to an attacker-controlled endpoint would expose sensitive query contents and a reusable token, making this more dangerous than the generic helper calls in the skill context.
