Tainted flow: 'request_obj' from os.getenv (line 208, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
request_obj = urllib.request.Request(url, headers=headers, data=body, method=method) try: with urllib.request.urlopen(request_obj, timeout=HTTP_TIMEOUT) as response: return decode_json_response(response.read()) except urllib.error.HTTPError as exc: body_bytes = exc.read()- Confidence
- 88% confidence
- Finding
- The code builds the request target from environment variables, including HOST_ADDRESS and RAGFLOW_* values, and then performs an outbound HTTP request with a Bearer API key attached. If an attacker can influence the environment or repository .env file, they can redirect requests to an arbitrary host and cause disclosure of the API key or induce SSRF-like access to internal services. In this skill context, making network requests is expected, but the ability to source the destination from mutable local configuration increases risk.
