Tainted flow: 'url' from os.environ.get (line 21, credential/environment) → requests.post (network output)
Critical
- Category
- Data Flow
- Content
"search_enabled": True } response = requests.post(url, json=payload, headers=headers, timeout=90) response.raise_for_status() return response.json()- Confidence
- 93% confidence
- Finding
- The request URL is derived from an environment variable and used directly in requests.post while the Authorization header contains a bearer token. If an attacker can influence AI_SEARCH_BASE_URL, they can redirect requests and exfiltrate the API key and all user queries to an attacker-controlled endpoint. In a search skill, this is especially dangerous because the tool routinely sends potentially sensitive prompts off-host.
