Tainted flow: 'BASE_URL' from os.getenv (line 37, credential/environment) → requests.post (network output)
Critical
- Category
- Data Flow
- Content
def _post(path: str, data: dict) -> dict: r = requests.post(f"{BASE_URL}{path}", headers=_headers(), json=data, timeout=120) r.raise_for_status() return r.json()- Confidence
- 92% confidence
- Finding
- The code builds outbound request URLs from the environment-controlled BASE_URL and sends the Authorization bearer token in the same request headers. If an attacker can influence SUNO_BASE_URL in the agent runtime, they can redirect requests and exfiltrate the API key or all prompt/audio metadata to an attacker-controlled server. In a skill context, this is more dangerous because the tool is explicitly designed to send user content and credentials to remote services.
