Tainted flow: 'url' from os.getenv (line 25, credential/environment) → requests.get (network output)
Critical
- Category
- Data Flow
- Content
return _sts_cache url = LEEWOW_API_BASE + STS_ENDPOINT resp = requests.get(url, timeout=15) resp.raise_for_status() data = resp.json() if not data.get("tmpSecretId"):- Confidence
- 88% confidence
- Finding
- The STS credential endpoint is built from an environment variable and then fetched over the network without any allowlisting or validation. If an attacker can influence LEEWOW_API_BASE, they can redirect the request to an attacker-controlled server and supply forged temporary credentials, causing uploads to go to attacker-controlled cloud storage or enabling SSRF-style outbound requests.
