Tainted flow: 'base_url' from os.getenv (line 401, credential/environment) → requests.post (network output)
Critical
- Category
- Data Flow
- Content
if not api_key: raise RuntimeError("Missing OPENAI_API_KEY for openai-compatible summarization") resp = requests.post( base_url.rstrip("/") + "/chat/completions", headers={"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}, json={"model": model, "messages": messages, "temperature": 0.2},- Confidence
- 98% confidence
- Finding
- `OPENAI_BASE_URL` is taken directly from the environment and used as the destination for a request that includes the bearer token and full transcript-derived content. If that environment variable is changed to an attacker-controlled host, the skill will exfiltrate sensitive transcripts and the API key to that host, creating a clear SSRF/credential-leak path.
