Tainted flow: 'url' from os.getenv (line 119, credential/environment) → requests.post (network output)
Critical
- Category
- Data Flow
- Content
"Name": "Ability.AovAbility" } response = requests.post(url, headers=headers, json=body, timeout=30) result = response.json() if result.get("code") != 2000:- Confidence
- 95% confidence
- Finding
- The request URL is built from JF_ENDPOINT, which is taken directly from an environment variable and then used for authenticated outbound requests. If an attacker can influence the environment, the script will send signed requests and sensitive headers (uuid, appKey, signature, timestamp, request ID) plus device metadata to an arbitrary host, creating an SSRF/exfiltration path.
