Tainted flow: 'req' from os.environ.get (line 243, credential/environment) → urllib.request.urlopen (network output)
Critical
- Category
- Data Flow
- Content
openclaw_endpoint, data=data, headers={"Content-Type": "application/json"}, ) urllib.request.urlopen(req, timeout=5) except Exception as e: print(f"[notify] OpenClaw notify failed: {e}", file=sys.stderr)- Confidence
- 95% confidence
- Finding
- The code sends notification data to a URL taken directly from the OPENCLAW_NOTIFY_ENDPOINT environment variable without validating the scheme, host, or trust boundary. Because the payload includes task summaries and command text, a poisoned environment or untrusted runtime can exfiltrate sensitive project metadata to an attacker-controlled endpoint via SSRF-style outbound requests.
