Tainted flow: 'url' from os.environ.get (line 111, credential/environment) → requests.post (network output)
Critical
- Category
- Data Flow
- Content
def post(self, action: str, version: str, body: dict) -> dict: body_str = json.dumps(body, ensure_ascii=False) url, headers = self._sign("POST", action, version, {}, body_str) r = requests.post(url, headers=headers, data=body_str.encode(), timeout=_HTTP_TIMEOUT) self._check(r) return r.json()- Confidence
- 93% confidence
- Finding
- The request URL is derived from the environment-controlled VOD_HOST and then used for authenticated outbound requests. Because the Authorization header is computed before the request is sent, an attacker who can influence environment variables or the loaded .env can redirect signed API traffic and credential-bearing headers to an arbitrary host, creating an SSRF-plus-credential-exfiltration condition.
