Tainted flow: 'req' from os.environ.get (line 204, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
} req = Request(get_api_base() + path, data=data, headers=headers, method="POST") try: with urlopen(req, timeout=TIMEOUT_SECONDS) as response: body = response.read().decode("utf-8") return json.loads(body) if body else {} except HTTPError as exc:- Confidence
- 95% confidence
- Finding
- The request URL and headers are partially derived from environment variables, including LINKFOX_TOOL_GATEWAY and authentication/session metadata, and are sent directly via urlopen. If an attacker can influence the runtime environment, they can redirect requests to an attacker-controlled endpoint and exfiltrate the API key and session identifiers; in a procurement skill, that could enable unauthorized access to order, authorization, logistics, and invoice data or misuse of purchasing actions.
