Scan report
vivekchand / clawmetry
Could an attacker exploit mistakes in this code?
Strong warning signs. Do not run or install this without a careful review.
- High
- 0
- Medium
- 309
- Low
- 961
Sources: Bandit, Semgrep, pip-audit
Does this code look like it is trying to cause harm?
Strong warning signs. Do not run or install this without a careful review.
- High
- 86
- Medium
- 15
- Low
- 95
Sources: YARA, ClamAV, GuardDog, dependency checker
- Likely real
- 73
- Uncertain
- 342
- Likely noise
- 1,051
The risk classifier rates every finding for how likely it is to be a real issue. Likely noise still counts, just much less.
What we found, in plain English
This repository shows severe security issues that are likely caused by malicious intent rather than just poor coding habits, as indicated by the Critical scores of 584.0 and 317.0 from automated tools like Bandit and YARA. The most concerning findings involve dangerous patterns such as recursive file deletion, dynamic code loading for execution, and cryptocurrency mining activity, which pose immediate threats to system stability and data integrity. Additionally, there are multiple hardcoded passwords and messaging platform tokens that could be exploited to steal sensitive information or bypass security controls. While some issues like URL schemes and XML parsing vulnerabilities appear less critical, the presence of these malicious patterns suggests the codebase is actively compromised rather than just containing standard bugs.
Written by a local language model from the findings below. The risk scores come from the classifier, not from this summary.
Detections by engine
Score over time
Overall score each time this repository was scanned.
Findings
Highest severity first. Select a finding to see the code and what it means.
Large result: showing the top 396 of 1,466 findings (up to 200 per engine, most severe and most likely real first). Totals above include everything.
-
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 1758
- Likely real
- Yes, 99% confidence
Detects suspicious autostart persistence mechanisms [threat-filesystem-autostart]
try: with open(cf) as f: cfg = json.load(f) hb = cfg.get("agents", {}).get("defaults", {}).get("heartbeat", {}) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/sync.py line 931
- Likely real
- Yes, 99% confidence
Detects dynamic code loading: downloading and importing/executing code at runtime [threat-runtime-dynamic-loader]
except Exception: msg = str(getattr(record, "msg", "")) now_ts = time.time() if not self._should_emit(msg, now_ts): -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/sync.py line 15386
- Likely real
- Yes, 99% confidence
Detects dynamic code loading: downloading and importing/executing code at runtime [threat-runtime-dynamic-loader]
try: mod = __import__(mod_name, fromlist=[cls_name]) classes.append(getattr(mod, cls_name)) except Exception as exc: # missing/broken adapter never blocks the rest -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/sync.py line 1331
- Likely real
- Yes, 99% confidence
Detects dynamic code loading: downloading and importing/executing code at runtime [threat-runtime-dynamic-loader]
f"{kind}:{node_id or 'n'}:{fname or 'f'}:" f"{__import__('hashlib').sha256(body.encode('utf-8', 'replace')).hexdigest()[:16]}" ) from clawmetry import local_store as _ls -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/framework_map.py line 197
- Likely real
- Yes, 99% confidence
Detects destructive operations (recursive deletion, wiping) [threat-filesystem-destruction]
...ctions destroying data through over-broad tools. " "ASI02 names deleting valuable data and passing rm -rf / to a shell. " "AML.T0101 is data destruction through an agent tool."), "limits": ("Reads t... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 1372
- Likely real
- Yes, 99% confidence
Detects suspicious autostart persistence mechanisms [threat-filesystem-autostart]
max_consecutive_in_session = 0 with open(fpath, "r", errors="replace") as f: lines = list(deque(f, maxlen=2000)) for line in lines: -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 3128
- Likely real
- Yes, 98% confidence
Detects system info collection combined with network exfiltration (hostname/user in HTTP requests) [threat-network-exfil-sysinfo]
) urllib.request.urlopen(req, timeout=10) except Exception as e: print(f"Warning: Direct Telegram alert failed: {e}") -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 11953
- Likely real
- Yes, 98% confidence
Detects system info collection combined with network exfiltration (hostname/user in HTTP requests) [threat-network-exfil-sysinfo]
response = requests.get("http://localhost:11434/api/tags", timeout=3) if response.status_code == 200: data = response.json() -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 12943
- Likely real
- Yes, 98% confidence
Detects system info collection combined with network exfiltration (hostname/user in HTTP requests) [threat-network-exfil-sysinfo]
hostname = socket.gethostname() try: result = validate_key(api_key, hostname=hostname, existing_node_id=saved_node_id) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/cli.py line 2270
- Likely real
- Yes, 98% confidence
Detects destructive operations (recursive deletion, wiping) [threat-filesystem-destruction]
"sleep 1; " "rm -rf /sandbox/.clawmetry /root/.clawmetry; " "rm -f /etc/supervisor/conf.d/clawmetry-sync.conf /etc/supervisor/supervisord.conf; " "pip uninstall -y --break-system-packages clawmetry 2>/dev/null || true" -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 13413
- Likely real
- Yes, 98% confidence
Detects suspicious autostart persistence mechanisms [threat-filesystem-autostart]
# Try legacy service name _old = os.path.expanduser("~/Library/LaunchAgents/com.clawmetry.plist") if os.path.exists(_old): subprocess.run(["launchctl", "unload", _old], capture_output=True) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 10693
- Likely real
- Yes, 98% confidence
Detects URLs to suspicious domains often used for exfiltration or C2 [threat-network-exfiltration]
req = _ur.Request( f"https://api.telegram.org/bot{tg_token}/getMe", method="GET" ) req.add_header("User-Agent", "ClawMetry/1.0") -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/incident_alerts.py line 360
- Likely real
- Yes, 97% confidence
Detects hardcoded messaging platform tokens/webhooks used for data exfiltration [threat-network-exfil-messenger]
return _post_json( f"https://api.telegram.org/bot{tok}/sendMessage", {"chat_id": cid, "text": f"[ClawMetry Alert] {message}"}) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /routes/alerts.py line 1166
- Likely real
- Yes, 97% confidence
Detects hardcoded messaging platform tokens/webhooks used for data exfiltration [threat-network-exfil-messenger]
url = f"https://api.telegram.org/bot{token}/sendMessage" payload = json.dumps( { -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/briefs.py line 364
- Likely real
- Yes, 97% confidence
Detects hardcoded messaging platform tokens/webhooks used for data exfiltration [threat-network-exfil-messenger]
... return False, "no Telegram bot configured on the Alerts tab" return poster(f"https://api.telegram.org/bot{token}/sendMessage", {"chat_id": chat_id, "text": f"{title}\n{text}"[:3500]}), None except Exce... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 10062
- Likely real
- Yes, 97% confidence
Detects cryptocurrency mining activity [threat-process-cryptomining]
"patterns": [ r"\bxmrig\b", r"\bstratum\+tcp\b", r"(?:mine|pool)\..*\.(?:com|net|org)", -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 10065
- Likely real
- Yes, 97% confidence
Detects cryptocurrency mining activity [threat-process-cryptomining]
r"(?:mine|pool)\..*\.(?:com|net|org)", r"\bcpuminer\b", ], }, -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 10063
- Likely real
- Yes, 97% confidence
Detects cryptocurrency mining activity [threat-process-cryptomining]
r"\bxmrig\b", r"\bstratum\+tcp\b", r"(?:mine|pool)\..*\.(?:com|net|org)", r"\bcpuminer\b", -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 10011
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
"patterns": [ r"(?:/etc/shadow|/etc/passwd)", r"\.ssh/(?:id_rsa|id_ed25519|authorized_keys)", r"\.aws/credentials", -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 10013
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
r"\.ssh/(?:id_rsa|id_ed25519|authorized_keys)", r"\.aws/credentials", r"\.env(?:\b|$)", r"(?:\.kube|kubeconfig)", -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 11953
- Likely real
- Yes, 95% confidence
Detects download-and-execute patterns: fetching a remote file then executing it [threat-process-download-exec]
response = requests.get("http://localhost:11434/api/tags", timeout=3) if response.status_code == 200: data = response.json() -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 3128
- Likely real
- Yes, 95% confidence
Detects download-and-execute patterns: fetching a remote file then executing it [threat-process-download-exec]
) urllib.request.urlopen(req, timeout=10) except Exception as e: print(f"Warning: Direct Telegram alert failed: {e}") -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 12207
- Likely real
- Yes, 95% confidence
Detects download-and-execute patterns: fetching a remote file then executing it [threat-process-download-exec]
try: mc_response = subprocess.run( ["curl", "-s", f"{MC_URL}/api/tasks"], capture_output=True, -
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /dashboard.py
- Likely real
- Uncertain, 36% confidence
YARA rule matched: detect_crypto_miner — Cryptocurrency mining pool connection patterns
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/check_action_refs.py
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/auto_quarantine.py
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/apply_required_status_checks.py
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install.sh
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.claude/sf_client.py
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/e2e_gate.py
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /dashboard.py
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/providers/turso.py
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/c6-apply-ruleset.yml
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/c6-health.yml
- Likely real
- Uncertain, 33% confidence
YARA rule matched: detect_credential_harvester — References credential/secret material by name AND a deliberate outbound-send API in the same file - narrower than \'reads any env var\', which large legitimate codebases do constantly regardless of intent. Still not proof the two are connected (YARA can\'t trace data flow) - a known limitation, see NOTES.md
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/trace_capture.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install-clawmetry.sh
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/adapters/openclaw.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/incident_alerts.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/license.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/detector_behaviour.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/repo_scan.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /dashboard.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /desktop/app.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /desktop/onboarding.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /PRD-pr-trace.md
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /desktop/tray.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/secure.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawhub-plugin/uninstall.sh
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawhub-plugin/README.md
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/assistant_service.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/approvals.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/advisor.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/update_check.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/trial.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/overview.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /helpers/gateway.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/cli.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/sync.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/ci.yml
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /FLYWHEEL.md
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/static/js/app.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /CHANGELOG.md
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /README.md
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/pr_trace_join.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_otel_recipe_langgraph.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_published_wheel.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/canary_verify.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/accuracy_harness/keystone_e2e.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install.sh
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/accuracy_harness/_lib.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/accuracy_harness/README.md
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.claude/sf_client.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_selfhosted_image.py
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_download_and_execute — Downloads a remote resource AND executes it - the actually dangerous combination, not just downloading alone
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/static/vendor/marked.min.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/static/v2/dist/assets/index-CrUi8oj9.js
- Likely real
- Probably noise, 1% confidence
YARA rule matched: detect_obfuscated_string_execution — Reconstructs a string character-by-character or from hex escapes, then immediately executes it - fromCharCode/chr() alone are common in ordinary text-processing code, so this requires both the reconstruction and an execution call together
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/watchdog.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawhub-plugin/uninstall.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawhub-plugin/install.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/daemon_registration.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/security_posture.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /dashboard.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/fleet_install.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install-clawmetry.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/update_check.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/cli.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_persistence_mechanism — Modifies a startup/scheduling location - legitimate application code essentially never does this
-
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 7031
- Likely real
- Yes, 98% confidence
Detects extensive system/network enumeration activities [threat-runtime-enumeration]
try: with open(f'/proc/{pid}/environ', 'r') as f: env_data = f.read() for entry in env_data.split('\0'): -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 1800
- Likely real
- Yes, 98% confidence
Detects extensive system/network enumeration activities [threat-runtime-enumeration]
try: with open("/proc/1/cgroup", "r") as f: in_docker = "docker" in f.read() or "containerd" in f.read() except Exception: -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 7073
- Likely real
- Yes, 98% confidence
Detects extensive system/network enumeration activities [threat-runtime-enumeration]
try: with open('/proc/mounts') as f: for line in f: parts = line.split() -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/briefs.py line 364
- Likely real
- Yes, 98% confidence
Detects URLs to suspicious domains often used for exfiltration or C2 [threat-network-exfiltration]
return False, "no Telegram bot configured on the Alerts tab" return poster(f"https://api.telegram.org/bot{token}/sendMessage", {"chat_id": chat_id, "text": f"{title}\n{text}"[:3500]}), None ... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/incident_alerts.py line 360
- Likely real
- Yes, 98% confidence
Detects URLs to suspicious domains often used for exfiltration or C2 [threat-network-exfiltration]
return _post_json( f"https://api.telegram.org/bot{tok}/sendMessage", {"chat_id": cid, "text": f"[ClawMetry Alert] {message}"}) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /routes/alerts.py line 1166
- Likely real
- Yes, 98% confidence
Detects URLs to suspicious domains often used for exfiltration or C2 [threat-network-exfiltration]
url = f"https://api.telegram.org/bot{token}/sendMessage" payload = json.dumps( { -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /routes/alerts.py line 1673
- Likely real
- Yes, 98% confidence
Detects URLs to suspicious domains often used for exfiltration or C2 [threat-network-exfiltration]
_req = _ur.Request( f"https://api.telegram.org/bot{tok}/sendMessage", data=json.dumps({"chat_id": chat, "text": title + "\n" + message}).encode(), -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 10693
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
req = _ur.Request( f"https://api.telegram.org/bot{tg_token}/getMe", method="GET" ) req.add_header("User-Agent", "ClawMetry/1.0") -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/briefs.py line 364
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
return False, "no Telegram bot configured on the Alerts tab" return poster(f"https://api.telegram.org/bot{token}/sendMessage", {"chat_id": chat_id, "text": f"{title}\n{text}"[:3500]}), None ... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/briefs.py line 364
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
return False, "no Telegram bot configured on the Alerts tab" return poster(f"https://api.telegram.org/bot{token}/sendMessage", {"chat_id": chat_id, "text": f"{title}\n{text}"[:3500]}), Non... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/briefs.py line 364
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
return False, "no Telegram bot configured on the Alerts tab" return poster(f"https://api.telegram.org/bot{token}/sendMessage", {"chat_id": chat_id, "text": f"{title}\n{text}"[:3500]}), No... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 7117
- Likely real
- Yes, 97% confidence
Detects URLs to URL shorteners, file sharing, and suspicious services [threat-network-outbound-shady-links]
import urllib.request return urllib.request.urlopen("https://api.ipify.org", timeout=2).read().decode().strip() except Exception: return None -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/cli.py line 7689
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
pre-flight question rather than a monitoring one: a repository's own ``.git/config`` can name a program in ``core.fsmonitor``, git runs it during an ordinary background ``git status``, and the code... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/detector_behaviour.py line 186
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
...r"\.(?:pem|p12|pfx|jks)\b|private[_-]?key", re.I)), ("stored token file", re.compile(r"\.netrc|\.npmrc|\.pypirc|\.git-credentials|" r"\.docker/config\.json|credentials\.json", re.I)), ("keychain / secret s... -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/detector_behaviour.py line 186
- Likely real
- Yes, 96% confidence
Detects access to sensitive files (credentials, configs, keys) [threat-filesystem-read]
...tificate", re.compile(r"\.(?:pem|p12|pfx|jks)\b|private[_-]?key", re.I)), ("stored token file", re.compile(r"\.netrc|\.npmrc|\.pypirc|\.git-credentials|" r"\.docker/config\.json|credentials\.json", re.I)), ... -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /.claude/sf_client.py line 54
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
53 ctx = ssl.create_default_context(cafile=certifi.where() if certifi else None) 54 with urllib.request.urlopen(req, timeout=60, context=ctx) as r: 55 return json.loads(r.read().decode() or "{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/adapters/nemo.py line 772
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
771 url = host.rstrip("/") + "/api/tags" 772 with urllib.request.urlopen(url, timeout=0.6) as resp: 773 payload = json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/onboarding.py line 1580
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1579 try: 1580 with urllib.request.urlopen(url, timeout=2.0) as resp: 1581 if 200 <= resp.status < 300: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 10696
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
10695 req.add_header("User-Agent", "ClawMetry/1.0") 10696 with _ur.urlopen(req, timeout=4) as resp: 10697 data = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 11940
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
11939 req = urllib.request.Request("http://localhost:11434/api/version", method="GET") 11940 with urllib.request.urlopen(req, timeout=2) as resp: 11941 if resp.status == 200: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 12852
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
12851 url = _app_url() + "/api/cloud/account?token=" + _up.quote(token) 12852 with _ur.urlopen(url, timeout=3) as resp: 12853 body = json.loads(resp.read() or b"{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 13010
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
13009 ) 13010 with _ur.urlopen(req, timeout=15) as resp: 13011 body = json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/app.py line 596
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
595 ctx = onboarding._ssl_context() if base.lower().startswith("https://") else None 596 with urllib.request.urlopen(req, timeout=OPEN_PING_TIMEOUT_SECS, context=ctx) as r: 597 r.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/app.py line 1633
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1632 try: 1633 with urllib.request.urlopen(url, timeout=1.5) as r: 1634 if 200 <= r.status < 400: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/app.py line 1671
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1670 try: 1671 with urllib.request.urlopen( 1672 f"http://127.0.0.1:{self.port}/api/version", timeout=1.5 1673 ) as r: 1674 return json.loads(r.read()).get("current") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/app.py line 1994
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1993 try: 1994 with urllib.request.urlopen( 1995 f"http://127.0.0.1:{port}/api/version", timeout=1.5 1996 ) as r: 1997 return 200 <= r.status < 400 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/onboarding.py line 324
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
323 try: 324 with urllib.request.urlopen(url, timeout=timeout) as resp: 325 if resp.status in (401, 403): -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/onboarding.py line 496
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
495 ) 496 with urllib.request.urlopen(req, timeout=15, context=_ssl_context()) as resp: 497 body = json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/onboarding.py line 1482
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1481 try: 1482 with urllib.request.urlopen(req, timeout=timeout, context=_ctx) as resp: 1483 raw = json.loads(resp.read().decode("utf-8") or "{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 8052
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
8051 ) 8052 with _urllib_req.urlopen(req, timeout=2) as resp: 8053 result = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/tray.py line 163
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
162 try: 163 with urllib.request.urlopen(DASHBOARD_URL + "/api/version", timeout=2) as r: 164 if 200 <= r.status < 300: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /desktop/tray.py line 169
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
168 try: 169 with urllib.request.urlopen(DASHBOARD_URL, timeout=2) as r: 170 if 200 <= r.status < 400: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /integrations/nat/clawmetry_nat/exporter.py line 253
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
252 try: 253 with urllib.request.urlopen(req, timeout=15) as resp: 254 log.debug(f"Flushed {len(events)} events → HTTP {resp.status}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/advisor.py line 458
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
457 try: 458 with urllib.request.urlopen(req, timeout=timeout) as resp: 459 return json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/alerts.py line 1677
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1676 headers={"Content-Type": "application/json"}, method="POST") 1677 _ur.urlopen(_req, timeout=10) 1678 sent.append("telegram") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/alerts.py line 1695
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1694 headers={"Content-Type": "application/json"}, method="POST") 1695 _ur.urlopen(_req, timeout=10) 1696 sent.append("pagerduty") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/channels.py line 2385
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
2384 ) 2385 with urllib.request.urlopen(req, timeout=3) as resp: 2386 bb_data = json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/channels.py line 2397
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
2396 ) 2397 with urllib.request.urlopen(req2, timeout=3) as resp2: 2398 pass # just count endpoint -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/local_query.py line 108
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
107 try: 108 with urllib.request.urlopen(req, timeout=t) as resp: 109 return _json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/meta.py line 387
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
386 ) 387 with _ur.urlopen(req, timeout=10) as resp: 388 data = _json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/meta.py line 1122
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1121 # Short timeout — never block the OSS request thread on the cloud. 1122 _ur.urlopen(req, timeout=2).close() 1123 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/security_posture.py line 310
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
309 ) 310 with urllib.request.urlopen(req, timeout=8) as resp: 311 if resp.status == 200: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/insights.py line 652
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
651 ) 652 with urllib.request.urlopen(req, timeout=SYNTHESIS_TIMEOUT_SECS) as resp: 653 data = json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/instrument.py line 149
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
148 headers={"User-Agent": "clawmetry-instrument"}) 149 with urllib.request.urlopen(req, timeout=timeout) as r: 150 return 200 <= r.status < 300 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/license.py line 549
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
548 req = urllib.request.Request(url, headers=headers or {}, method="GET") 549 with urllib.request.urlopen(req, timeout=60) as resp: 550 # 2xx only; redirects are followed by urlopen, 402/403/503 raise HTTPError. -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/license.py line 901
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
900 ) 901 with urllib.request.urlopen(req, timeout=30) as resp: 902 data = json.loads(resp.read().decode("utf-8") or "{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/license.py line 1005
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1004 ) 1005 with urllib.request.urlopen(req, timeout=20) as resp: 1006 ent = json.loads(resp.read().decode("utf-8") or "{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/mcp_server.py line 82
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
81 try: 82 with urllib.request.urlopen(req, timeout=_TIMEOUT_SECS) as resp: 83 return json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/narrator.py line 177
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
176 ) 177 with urllib.request.urlopen(req, timeout=timeout_secs) as resp: 178 data = json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/pr_provenance.py line 1022
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1021 headers, **({"Content-Type": "application/json"} if data else {}))) 1022 with urllib.request.urlopen(req, timeout=timeout) as resp: 1023 raw = resp.read().decode("utf-8", "replace") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/providers/turso.py line 65
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
64 try: 65 with urllib.request.urlopen(req, timeout=8) as resp: 66 data = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/proxy.py line 2514
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
2513 try: 2514 resp = urlopen(req, timeout=300) 2515 except HTTPError as e: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/secure.py line 164
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
163 req = urllib.request.Request(url, headers=_UA) 164 with urllib.request.urlopen(req, timeout=60) as resp: 165 return resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/overview.py line 1998
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1997 ) 1998 with _ur.urlopen(_req, timeout=10) as _resp: 1999 result = _jr.loads(_resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/sync.py line 1757
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1756 try: 1757 with urllib.request.urlopen(req, timeout=timeout) as resp: 1758 # /ingest/cache (and other write endpoints) may answer 204/200 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/sync.py line 7534
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
7533 req = urllib.request.Request("http://localhost:11434/api/tags", method="GET") 7534 with urllib.request.urlopen(req, timeout=3) as resp: 7535 if resp.status == 200: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/sync.py line 8008
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
8007 else: 8008 response = urllib.request.urlopen(req, timeout=min(25, wait_secs + 5)) 8009 with response as resp: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/sync.py line 9315
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
9314 try: 9315 resp = _ur.urlopen(req, timeout=_LIMITS_TIMEOUT_S) 9316 hs = {k.lower(): v for k, v in dict(resp.headers).items()} -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/sync.py line 25402
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
25401 req = _ur.Request(_APP_BASE + path, headers=headers, method="GET") 25402 with _ur.urlopen(req, timeout=timeout) as r: 25403 return json.loads(r.read() or b"{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/sync.py line 28463
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
28462 ) 28463 with urllib.request.urlopen( 28464 req, timeout=_LOCAL_ALERTS_WEBHOOK_TIMEOUT_SEC 28465 ) as resp: 28466 status = getattr(resp, "status", None) or 200 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/telemetry.py line 232
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
231 ctx = _ssl_context() if url.lower().startswith("https://") else None 232 with urllib.request.urlopen(req, timeout=TELEMETRY_TIMEOUT_SEC, context=ctx) as r: 233 r.read() # drain so the connection releases cleanly -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/trace_capture.py line 350
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
349 try: 350 with urllib.request.urlopen(req, timeout=timeout) as resp: 351 return _json.loads(resp.read().decode("utf-8", "replace")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/trace_capture.py line 417
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
416 }) 417 with urllib.request.urlopen(req, timeout=timeout) as resp: 418 rows = _json.loads(resp.read().decode("utf-8", "replace")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 7117
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
7116 import urllib.request 7117 return urllib.request.urlopen("https://api.ipify.org", timeout=2).read().decode().strip() 7118 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 1704
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1703 ) 1704 with _ur.urlopen(req, timeout=15) as resp: 1705 body = _jk.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_alerts.py line 339
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
338 "User-Agent": "clawmetry"}) 339 with urllib.request.urlopen(req, timeout=_HTTP_TIMEOUT) as resp: 340 status = getattr(resp, "status", None) or 200 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_alerts.py line 148
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
147 method="POST") 148 with urllib.request.urlopen(req, timeout=_HTTP_TIMEOUT) as resp: 149 body = json.loads(resp.read() or b"{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/doctor.py line 386
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
385 # exercises the exact transport the daemon heartbeat uses. 386 with urllib.request.urlopen(req, timeout=TIMEOUT_S) as resp: 387 status = getattr(resp, "status", 200) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cursor_connector.py line 199
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
198 try: 199 with urllib.request.urlopen(req, timeout=_TIMEOUT) as resp: 200 return json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 8015
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
8014 try: 8015 with _ur.urlopen(req, timeout=timeout) as resp: 8016 body = _json.loads(resp.read().decode("utf-8", errors="replace")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 7965
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
7964 try: 7965 with _ur.urlopen(req, timeout=timeout) as resp: 7966 body = _json.loads(resp.read().decode("utf-8", errors="replace")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 5732
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
5731 ) 5732 with urllib.request.urlopen(req, timeout=10) as resp: 5733 data = json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 4865
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
4864 url = f"http://{config.host}:{config.port}/proxy/status" 4865 with urllib.request.urlopen(url, timeout=3) as r: 4866 detail = json.loads(r.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 4223
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
4222 try: 4223 with urllib.request.urlopen(req, timeout=_per_attempt_timeout) as resp: 4224 result = _json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 3171
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
3170 headers={"X-Api-Key": api_key}, method="GET") 3171 with _ur.urlopen(req, timeout=2.5) as resp: 3172 data = _json.loads(resp.read() or b"{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 2744
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
2743 ) 2744 with urllib.request.urlopen(_req, timeout=120) as _resp: 2745 pass -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/insights.py line 614
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
613 ) 614 with urllib.request.urlopen(req, timeout=SYNTHESIS_TIMEOUT_SECS) as resp: 615 data = json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 23
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
22 try: 23 with urllib.request.urlopen(req, timeout=timeout) as resp: 24 return _json.loads(resp.read()), 200 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/claude_code_gate.py line 747
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
746 headers={"Content-Type": "application/json"}, method="POST") 747 with urllib.request.urlopen(req, timeout=timeout) as resp: 748 return json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/briefs.py line 328
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
327 method="POST") 328 with urllib.request.urlopen(req, timeout=_POST_TIMEOUT_SEC) as resp: 329 status = getattr(resp, "status", None) or 200 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/attention_hook.py line 90
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
89 headers={"Content-Type": "application/json"}, method="POST") 90 with urllib.request.urlopen(req, timeout=_TIMEOUT_S): 91 pass -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/assistant_service.py line 203
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
202 try: 203 with urllib.request.urlopen(req, timeout=65) as response: 204 result = json.load(response) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/assistant_relay.py line 254
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
253 'Content-Type': 'application/json', **_headers(config)}) 254 with urllib.request.urlopen(req, timeout=3) as response: 255 raw = response.read(256*1024+1) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/assistant_managed.py line 125
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
124 if control is None: 125 with request.urlopen(req, timeout=60) as response: 126 raw = response.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/approvals.py line 791
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
790 ) 791 with urllib.request.urlopen(req, timeout=10) as resp: 792 data = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/approvals.py line 687
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
686 ) 687 with urllib.request.urlopen(req, timeout=15) as resp: 688 return json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/adapters/openclaw.py line 509
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
508 url = host.rstrip("/") + "/api/tags" 509 with urllib.request.urlopen(url, timeout=2) as resp: # noqa: S310 510 data = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/canary_verify.py line 61
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
60 try: 61 with urllib.request.urlopen(PYPI_JSON, timeout=timeout) as resp: 62 data = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/overview.py line 2084
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
2083 ) 2084 with _ur.urlopen(_req, timeout=10) as _resp: 2085 result = _jr.loads(_resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/trial.py line 127
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
126 try: 127 with urllib.request.urlopen(req, timeout=15) as resp: 128 payload = json.loads(resp.read().decode("utf-8", errors="replace")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/trial.py line 413
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
412 ) 413 with urllib.request.urlopen(req, timeout=10) as resp: 414 payload = json.loads(resp.read().decode("utf-8", errors="replace")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/update_check.py line 635
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
634 ) 635 with _ur.urlopen(req, timeout=10) as resp: 636 data = json.loads(resp.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/accuracy_harness/_lib.py line 56
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
55 req = urllib.request.Request(url, headers=h) 56 with urllib.request.urlopen(req, timeout=timeout) as resp: 57 return json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/accuracy_harness/_lib.py line 68
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
67 req = urllib.request.Request(url, data=data, headers=h, method="POST") 68 with urllib.request.urlopen(req, timeout=timeout) as resp: 69 return json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/accuracy_harness/_lib.py line 80
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
79 req = urllib.request.Request(url, headers=h, method="DELETE") 80 with urllib.request.urlopen(req, timeout=timeout) as resp: 81 raw = resp.read().decode("utf-8") or "" -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/apply_required_status_checks.py line 122
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
121 try: 122 with urllib.request.urlopen(req) as r: # noqa: S310 123 return json.loads(r.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/auto_quarantine.py line 105
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
104 try: 105 with urllib.request.urlopen(req) as resp: # noqa: S310 106 return json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/auto_quarantine.py line 162
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
161 target = _https_redirect_target(location, artifact_id) 162 with urllib.request.urlopen(target) as s3_resp: # noqa: S310 163 return s3_resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/canary_verify.py line 48
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
47 def latest_version(timeout: int = 30) -> str: 48 with urllib.request.urlopen(PYPI_JSON, timeout=timeout) as resp: 49 return json.loads(resp.read())["info"]["version"] -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/e2e_gate.py line 350
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
349 try: 350 with urllib.request.urlopen(req) as resp: # noqa: S310 - origin pinned 351 data = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/resolve_selfhosted_runtime_pins.py line 99
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
98 def _get(url: str) -> dict: 99 with urllib.request.urlopen(url, timeout=60) as fh: 100 return json.load(fh) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/resolve_windows_pins.py line 65
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
64 def _get(url: str) -> dict: 65 with urllib.request.urlopen(url, timeout=60) as fh: 66 return json.load(fh) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/vendor_fonts.py line 107
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
106 pass 107 with urllib.request.urlopen(req, timeout=30, context=ctx) as resp: 108 return resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/verify_i18n_coverage.py line 51
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
50 def _fetch(url: str, timeout: int = 20) -> bytes: 51 with urllib.request.urlopen(url, timeout=timeout) as resp: 52 return resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/verify_otel_recipe_langgraph.py line 73
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
72 headers={"Authorization": f"Bearer {token}"}) 73 with urllib.request.urlopen(req, timeout=30) as resp: 74 return json.loads(resp.read().decode("utf-8")) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/verify_runtime_filtering.py line 40
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
39 try: 40 with urllib.request.urlopen(req, timeout=20) as r: 41 return json.loads(r.read().decode()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/verify_selfhosted_image.py line 140
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
139 try: 140 with urllib.request.urlopen(req, timeout=timeout) as resp: 141 return resp.status, resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/verify_selfhosted_image.py line 208
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
207 try: 208 with urllib.request.urlopen(req, timeout=timeout) as resp: 209 return resp.status, resp.read().decode("utf-8", "replace") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/verify_vendor.py line 66
- Likely real
- Uncertain, 49% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
65 try: 66 with urllib.request.urlopen(url, timeout=60, context=_ssl_context()) as resp: 67 blob = resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/selfhosted.py line 216
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
215 ) 216 with urllib.request.urlopen(req, timeout=10) as resp: 217 resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 1556
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1555 try: 1556 _ur.urlopen(f"http://127.0.0.1:{port}/", timeout=2) 1557 return True -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/proxy.py line 1940
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1939 try: 1940 resp = urlopen(req, timeout=300) 1941 resp_body = resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/trace.py line 110
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
109 ) 110 with urllib.request.urlopen(req, timeout=_HTTP_TIMEOUT_S): 111 pass -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 3128
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
3127 ) 3128 urllib.request.urlopen(req, timeout=10) 3129 except Exception as e: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /dashboard.py line 3308
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
3307 ) 3308 _ur.urlopen(req, timeout=10) 3309 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/alerts.py line 1177
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1176 ) 1177 urllib.request.urlopen(req, timeout=10) 1178 return jsonify({"ok": True}) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /routes/overview.py line 1909
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
1908 try: 1909 with urllib.request.urlopen(req, timeout=15) as resp: 1910 payload = resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/check_action_refs.py line 147
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
146 try: 147 with urllib.request.urlopen(request, timeout=20) as resp: 148 return resp.status -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/e2e_gate.py line 397
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
396 try: 397 with urllib.request.urlopen(req) as resp: 398 return json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/litellm_gateway_ci.py line 62
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
61 try: 62 with urllib.request.urlopen(req, timeout=timeout) as resp: 63 payload = resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/pr_trace_join.py line 54
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
53 try: 54 with urllib.request.urlopen(DASH + path, timeout=20) as r: 55 return json.load(r) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/spike_unexplained_descendants.py line 87
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
86 try: 87 return json.load(urllib.request.urlopen(req, timeout=30))["result"] 88 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /scripts/verify_otel_recipe_langgraph.py line 117
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
116 try: 117 with urllib.request.urlopen(req, timeout=15) as resp: 118 code = resp.status -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/otel_exporter.py line 289
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
288 try: 289 with urllib.request.urlopen(req, timeout=10) as resp: 290 resp.read() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/hooks_claude_code.py line 687
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
686 ) 687 with urllib.request.urlopen(req, timeout=timeout): 688 return True -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/hooks_claude_code.py line 394
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
393 ) 394 with urllib.request.urlopen(req, timeout=4): 395 return True -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/eval_runner.py line 945
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
944 ) 945 with _ur.urlopen(req, timeout=timeout) as resp: 946 return _json.loads(resp.read() or b"{}") -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli_cmds/selfevolve.py line 80
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
79 ) 80 urllib.request.urlopen(req, timeout=1.0).close() 81 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 8254
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
8253 try: 8254 resp = urllib.request.urlopen(req, timeout=120) 8255 except urllib.error.HTTPError as e: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cli.py line 8173
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
8172 try: 8173 resp = urllib.request.urlopen(req, timeout=120) 8174 except urllib.error.HTTPError as e: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/approvals.py line 507
- Likely real
- Uncertain, 48% confidence
Audit url open for permitted schemes. Allowing use of file:/ or custom schemes is often unexpected.
506 ) 507 with urllib.request.urlopen(req, timeout=10) as resp: 508 data = json.loads(resp.read()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 2712
- Likely real
- Uncertain, 47% confidence
Possible SQL injection vector through string-based query construction.
2711 ) 2712 return "WITH " + ", ".join(ctes) + " SELECT * FROM (" 2713 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 2712
- Likely real
- Uncertain, 47% confidence
Possible SQL injection vector through string-based query construction.
2711 ) 2712 return "WITH " + ", ".join(ctes) + " SELECT * FROM (" 2713 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 14189
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
14188 where = "WHERE " + " AND ".join(clauses) 14189 sql = f"SELECT cost_usd, data FROM events {where} LIMIT 200000" 14190 try: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5266
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5265 for sid, cwd in self._fetch( 5266 f"SELECT session_id, cwd FROM sessions WHERE session_id IN ({marks})", sids): 5267 if cwd: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/investigations.py line 195
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
194 "start_ts", "end_ts", "duration_ms", "tool_name") 195 rows = self._fetch("SELECT " + ",".join(cols) + " FROM spans WHERE session_id=? " 196 "AND node_id=? AND agent_type=? AND start_ts>=? AND (" + -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 214
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
213 try: 214 n = int(conn.execute(f'SELECT COUNT(*) FROM "{name}"').fetchone()[0]) 215 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 296
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
295 ).fetchall(): 296 a = conn.execute(f'SELECT COUNT(*) FROM "{db_path.stem}"."{name}"').fetchone()[0] 297 b = conn.execute(f'SELECT COUNT(*) FROM _compact_target."{name}"').fetchone()[0] -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 297
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
296 a = conn.execute(f'SELECT COUNT(*) FROM "{db_path.stem}"."{name}"').fetchone()[0] 297 b = conn.execute(f'SELECT COUNT(*) FROM _compact_target."{name}"').fetchone()[0] 298 if a != b: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 2708
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
2707 ctes.append( 2708 f"{table_name} AS (" 2709 f"SELECT {', '.join(visible)} " 2710 f"FROM main.{table_name} AS source)" 2711 ) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 2836
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
2835 return ( 2836 "SELECT " + ", ".join(projection) 2837 + " FROM (" + bounded_sql + ") AS _assistant_result" -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 3228
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
3227 conn.execute( 3228 f""" 3229 UPDATE rollup_session 3230 SET runtime = split_part(session_id, ':', 1) 3231 WHERE split_part(session_id, ':', 1) IN ({prefixes}) 3232 AND runtime IS DISTINCT FROM split_part(session_id, ':', 1) 3233 """ 3234 ) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 4956
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
4955 try: 4956 t_rows = self._fetch(f""" 4957 SELECT agent_type, side, model, runtime_version, 4958 CAST(turn_ms / 86400000 AS BIGINT) AS day, COUNT(*) 4959 FROM signal_turns 4960 WHERE turn_ms >= ?{rt_clause} 4961 GROUP BY 1, 2, 3, 4, 5 4962 """, params) 4963 m_rows = self._fetch(f""" -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5028
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5027 rows = self._fetch( 5028 f"SELECT session_id, metadata FROM sessions WHERE session_id IN ({placeholders})", 5029 ids, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5108
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5107 try: 5108 turns = self._fetch(f""" 5109 SELECT COUNT(*) FROM signal_turns 5110 WHERE side = ? AND turn_ms >= ?{rt_clause} 5111 """, [side, since] + extra) 5112 matches = self._fetch(f""" -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5112
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5111 """, [side, since] + extra) 5112 matches = self._fetch(f""" 5113 SELECT COUNT(*), ANY_VALUE(model) FROM signal_matches 5114 WHERE signal = ? AND turn_ms >= ?{rt_clause} 5115 """, [sig, since] + extra) 5116 except Exception as e: # noqa: BLE001 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/investigations.py line 173
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
172 selected = [_row_to_event(r, _EVENT_COLS) for r in self._fetch( 173 f"SELECT {cols} FROM events WHERE {where} AND created_at>=? AND id=?", 174 params + [cutoff, event_id])] -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5315
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5314 try: 5315 existing = self._fetch(f""" 5316 SELECT {", ".join(self._ISSUE_COLS)} FROM signal_issues 5317 WHERE signal = ? AND agent_type = ? 5318 ORDER BY opened_at DESC LIMIT 1 5319 """, [sig, rt]) 5320 except Exception as e: # noqa: BLE001 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5374
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5373 rows = self._fetch( 5374 f"SELECT {', '.join(self._ISSUE_COLS)} FROM signal_issues WHERE id = ?", 5375 [str(issue_id or "")]) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5396
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5395 try: 5396 rows = self._fetch(f""" 5397 SELECT {', '.join(self._ISSUE_COLS)} FROM signal_issues{where} 5398 ORDER BY CASE status WHEN 'open' THEN 0 WHEN 'ignored' THEN 1 ELSE 2 END, 5399 opened_at DESC 5400 LIMIT ? 5401 """, params + [max(1, min(int(limit or 100), 500))]) 5402 except Exception as e: # noqa: BLE001 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5459
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5458 rows = self._fetch( 5459 f"SELECT {', '.join(self._BRIEF_COLS)} FROM briefs{where} " 5460 f"ORDER BY created_at ASC LIMIT ?", [max(1, min(int(limit or 200), 500))]) 5461 except Exception as e: # noqa: BLE001 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5469
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5468 rows = self._fetch( 5469 f"SELECT {', '.join(self._BRIEF_COLS)} FROM briefs WHERE id = ?", 5470 [str(brief_id or "")]) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5729
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5728 for r in self._conn.execute( 5729 "SELECT agent_type, session_id, started_at, last_active_at" 5730 f" FROM sessions WHERE session_id IN ({ph})", chunk, 5731 ).fetchall(): -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 5839
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
5838 self._conn.execute( 5839 f"UPDATE sessions SET {', '.join(sets)} " 5840 "WHERE agent_type = ? AND session_id = ?", 5841 params, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 7203
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
7202 rows = self._fetch( 7203 f"SELECT {cols} FROM meeting_transcripts " 7204 "ORDER BY COALESCE(stopped_at, started_at) DESC NULLS LAST " 7205 "LIMIT ?", [int(limit)]) 7206 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 7263
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
7262 self._conn.execute( 7263 f"INSERT INTO run_ledger ({cols}, updated_at) " 7264 f"VALUES ({ph}, ?) " 7265 f"ON CONFLICT (task_id) DO UPDATE SET {upd}, updated_at = excluded.updated_at", 7266 [*vals, now_ms], -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 7334
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
7333 self._conn.execute( 7334 f"INSERT INTO tool_policy ({cols}, updated_at) " 7335 f"VALUES ({ph}, ?) " 7336 f"ON CONFLICT (agent_id) DO UPDATE SET {upd}, updated_at = excluded.updated_at", 7337 [*vals, now_ms], -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 7442
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
7441 where = ("WHERE " + " AND ".join(clauses)) if clauses else "" 7442 sql = f""" 7443 SELECT session_id, signature, repeat_count, 7444 first_seen, last_seen, severity, agent_type, details 7445 FROM loop_signals 7446 {where} 7447 ORDER BY last_seen DESC, session_id, signature 7448 LIMIT ? 7449 """ 7450 params.append(lim) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_store.py line 184
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
183 old_raw = self._conn.execute( 184 f"SELECT {_SELECT} FROM incident_episodes WHERE incident_id=?", 185 [head[0]]).fetchone() if head else None -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/adapters/openclaw_replay.py line 338
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
337 rows = conn.execute( 338 "SELECT %s FROM operator_approvals WHERE %s " 339 "ORDER BY created_at_ms ASC LIMIT %d" 340 % (", ".join(have), " OR ".join(clauses), _MAX_DB_ROWS), 341 params, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/adapters/openclaw_replay.py line 372
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
371 rows = conn.execute( 372 "SELECT %s FROM subagent_runs WHERE %s " 373 "ORDER BY created_at ASC LIMIT %d" 374 % (", ".join(select), where, _MAX_DB_ROWS), 375 params, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/agentops_metrics.py line 333
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
332 scoped = ctx["clause"] 333 row = _fetch(store, f""" 334 SELECT COUNT(*) FROM sessions 335 WHERE COALESCE(last_active_at, started_at, '') >= ? 336 {('AND ' + scoped) if scoped else ''} 337 """, [ctx["cutoff_iso"], *ctx["params"]]) 338 active = int(row[0][0] or 0) if row else 0 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/agentops_metrics.py line 346
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
345 ("approval_denied", 346 "SELECT requestor_session_id FROM approvals " 347 "WHERE COALESCE(resolved_at, created_at, '') >= ? " 348 "AND lower(COALESCE(decision, status, '')) IN (" 349 + ",".join("?" * len(APPROVAL_DENIED)) + ")", 350 [ctx["cutoff_iso"], *sorted(APPROVAL_DENIED)]), -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/agentops_metrics.py line 352
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
351 ("guardrail_block", 352 "SELECT session_id FROM guardrail_events WHERE ts >= ? " 353 "AND lower(COALESCE(verdict, '')) IN (" 354 + ",".join("?" * len(GUARDRAIL_BLOCK_VERDICTS)) + ")", 355 [ctx["cutoff_iso"], *sorted(GUARDRAIL_BLOCK_VERDICTS)]), -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/agentops_metrics.py line 379
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
378 scoped = ctx["clause"] 379 rows = _fetch(store, f""" 380 SELECT status, COUNT(*) FROM review_queue 381 WHERE reviewed_at IS NOT NULL AND reviewed_at >= ? 382 {('AND ' + scoped) if scoped else ''} 383 GROUP BY status 384 """, [ctx["cutoff_iso"], *ctx["params"]]) 385 counts = {str(s or ""): int(n or 0) for s, n in rows} -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/agentops_metrics.py line 404
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
403 scoped = ctx["clause"] 404 rows = _fetch(store, f""" 405 SELECT correct, first_pass FROM session_ground_truth 406 WHERE reported_at >= ? 407 {('AND ' + scoped) if scoped else ''} 408 LIMIT {ROW_LIMIT} 409 """, [ctx["cutoff_ms"], *ctx["params"]]) 410 verdicts = [bool(c) for c, _ in rows if c is not None] -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/assistant_evidence.py line 310
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
309 table = 'main.events' if source == 'events' else 'main.replay_events' 310 sql = f"SELECT {eid}, CAST({ts} AS VARCHAR), {cols} FROM {table} WHERE "+' AND '.join(clauses)+f' ORDER BY {ts} {direction}, {eid} {direction} LIMIT ?' 311 params.append(cap) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/assistant_evidence.py line 339
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
338 params.extend([eid, available]) 339 rows = self.fetch(f'SELECT {column} FROM {table} WHERE '+' AND '.join(clauses)+' LIMIT 1', params) 340 if not rows or rows[0][0] is None: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cohort_queries.py line 93
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
92 rows = store._fetch( 93 f"SELECT session_id, {name_col} FROM signal_matches " 94 f"WHERE session_id IN ({ph})", chunk) 95 for sid, name in rows: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/cohort_queries.py line 117
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
116 rows = store._fetch( 117 f"SELECT session_id, {hash_col} FROM session_context " 118 f"WHERE session_id IN ({ph})", chunk) 119 for sid, h in rows: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 7969
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
7968 rows = self._fetch( 7969 "SELECT session_id, agent_type, runs, agreement_pct, " 7970 "outcomes_json, updated_at FROM session_replay_stats " 7971 + where + "ORDER BY updated_at DESC LIMIT ?", params) 7972 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_store.py line 218
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
217 result = _row(self._conn.execute( 218 f"SELECT {_SELECT} FROM incident_episodes WHERE incident_id=?", 219 [incident_id]).fetchone()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_store.py line 273
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
272 old = _row(self._conn.execute( 273 f"SELECT {_SELECT} FROM incident_episodes WHERE incident_id=?", 274 [incident_id]).fetchone()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_store.py line 298
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
297 rows = self._conn.execute( 298 f"SELECT {_SELECT} FROM incident_episodes WHERE state='active' " 299 "AND (last_evidence_at IS NULL OR last_evidence_at <= ?)", 300 [now - STALE_AFTER_MS]).fetchall() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_store.py line 323
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
322 old = _row(self._conn.execute( 323 f"SELECT {_SELECT} FROM incident_episodes WHERE incident_id=?", [incident_id]).fetchone()) 324 if not old: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_store.py line 354
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
353 return [_row(r) for r in self._fetch( 354 f"SELECT {_SELECT} FROM incident_episodes{where} " 355 "ORDER BY updated_at DESC, incident_id DESC LIMIT ?", args + [lim])] 356 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/incident_store.py line 366
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
365 return [_row(r) for r in self._fetch( 366 "SELECT " + ", ".join("i." + k for k in _COLS) + 367 " FROM incident_heads h JOIN incident_episodes i USING (incident_id) WHERE " + -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/investigation_catalog.py line 20
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
19 'started_at', 'last_active_at', 'ended_at') 20 rows = self._fetch('SELECT ' + ','.join(cols) + ' FROM sessions WHERE ' + where + 21 ' ORDER BY updated_at DESC,session_id LIMIT ?', [*params, lim + 1]) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/investigation_catalog.py line 79
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
78 if ids: 79 markers = self._fetch('SELECT event_id,resolved_at FROM resolved_errors WHERE event_id IN (' + 80 ','.join('?' for _ in ids) + ')', ids) 81 resolved = {eid: {'resolved_at': at} for eid, at in markers} -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/investigations.py line 135
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
134 rows = [_row_to_event(r, _EVENT_COLS) for r in self._fetch( 135 f"SELECT {cols} FROM events WHERE {history_where} " 136 "ORDER BY ts DESC, id DESC LIMIT ?", history_params + [lim + 1])] 137 more = len(rows) > lim -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/investigations.py line 146
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
145 session = self._fetch( 146 "SELECT status, ended_at, last_active_at, outcome FROM sessions WHERE " + 147 where + " ORDER BY updated_at DESC LIMIT 1", params) 148 if session: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/investigations.py line 163
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
162 body["evidence_rows"] = [_row_to_event(r, _EVENT_COLS) for r in self._fetch( 163 f"SELECT {cols} FROM events WHERE {where} AND created_at >= ? " 164 f"AND id IN ({marks}) ORDER BY ts, id", params + [cutoff, *ids])] 165 available = {r["id"] for r in body["evidence_rows"]} -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 12649
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
12648 cur = self._conn.execute( 12649 f"SELECT id, chain_hash FROM events WHERE id IN ({ph})", chunk 12650 ) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 10352
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
10351 where = ("WHERE " + " AND ".join(clauses)) if clauses else "" 10352 sql = f""" 10353 SELECT {", ".join(self._ASSET_COLS)} 10354 FROM assets 10355 {where} 10356 ORDER BY updated_at DESC 10357 LIMIT ? 10358 """ 10359 params.append(int(limit)) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 10632
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
10631 self._conn.execute( 10632 f"DELETE FROM spans WHERE span_id IN ({ph})", chunk 10633 ) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 10895
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
10894 already_stored += len(self._fetch( 10895 f"SELECT record_id FROM otlp_records WHERE record_id IN ({marks})", 10896 chunk, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 11026
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
11025 for row in self._fetch( 11026 f"SELECT session_id, metadata FROM sessions" 11027 f" WHERE session_id IN ({ph})", 11028 chunk, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 11132
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
11131 sql = ( 11132 f"SELECT {', '.join(cols)} FROM otlp_records {where} " 11133 "ORDER BY ts DESC LIMIT ?" 11134 ) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 11239
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
11238 rows = self._fetch( 11239 f"SELECT MAX(ts), MAX(received_at), COUNT(*) FROM otlp_records {w}", 11240 params, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 12014
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
12013 ) 12014 sql = f""" 12015 SELECT {rt_case} AS runtime, MAX(ts) AS last_ts 12016 FROM events 12017 GROUP BY 1 12018 """ 12019 out: dict[str, str] = {} -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 12127
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
12126 where = "WHERE " + " AND ".join(clauses) 12127 sql = f""" 12128 SELECT ts, session_id, event_type, data 12129 FROM events 12130 {where} 12131 ORDER BY ts DESC 12132 LIMIT ? 12133 """ 12134 params.append(lim) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 12228
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
12227 where = "WHERE " + " AND ".join(clauses) 12228 sql = f""" 12229 SELECT ts, event_type, data 12230 FROM events 12231 {where} 12232 ORDER BY ts DESC 12233 LIMIT ? 12234 """ 12235 params.append(lim) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 12312
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
12311 where = ("WHERE " + " AND ".join(clauses)) if clauses else "" 12312 sql = (f"SELECT session_id, ts, event_type, data, token_count " 12313 f"FROM events {where} ORDER BY session_id ASC, ts ASC") 12314 rows = self._fetch(sql, params) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 10366
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
10365 return None 10366 sql = f"SELECT {', '.join(self._ASSET_COLS)} FROM assets WHERE id = ?" 10367 out = self._decode_asset_rows(self._fetch(sql, [str(asset_id)])) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 13207
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
13206 rows = self._fetch( 13207 f""" 13208 SELECT id, session_id, event_type, ts, data, model, cost_usd 13209 FROM events 13210 WHERE {" AND ".join(clauses)} 13211 ORDER BY session_id, ts, id 13212 LIMIT ? 13213 """, 13214 params, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 13262
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
13261 rows = self._fetch( 13262 f""" 13263 SELECT CAST(day AS VARCHAR) AS day, runtime, tokens, 13264 ROUND(cost_usd, 8) AS cost_usd, sessions, active_sessions 13265 FROM rollup_runtime_daily {where} 13266 ORDER BY day DESC, runtime 13267 LIMIT ? 13268 """, 13269 params, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 13577
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
13576 if selective: 13577 sql = f""" 13578 SELECT id, agent_type, node_id, agent_id, session_id, workspace_id, 13579 event_type, ts, data, cost_usd, token_count, model 13580 FROM events 13581 {where} 13582 ORDER BY ts DESC, id DESC 13583 LIMIT ? 13584 """ 13585 else: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 13879
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
13878 rows = self._fetch( 13879 f""" 13880 SELECT id, node_id, chain_prev_hash, chain_hash, 13881 agent_type, agent_id, session_id, workspace_id, event_type, ts 13882 FROM events 13883 {where} 13884 ORDER BY node_id, created_at ASC, id ASC 13885 """, 13886 params, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 13890
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
13889 pre_chain_count = self._fetch( 13890 "SELECT COUNT(*) FROM events WHERE chain_hash IS NULL" 13891 + (" AND node_id = ?" if node_id else ""), 13892 [node_id] if node_id else [], -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 14571
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
14570 data_col = "data" if include_data else "NULL AS data" 14571 sql = f""" 14572 SELECT agent_type, node_id, ts, version, e2e, size_mb, 14573 events_total, {data_col} 14574 FROM heartbeats 14575 {where} 14576 ORDER BY ts DESC 14577 LIMIT ? 14578 """ 14579 params.append(int(limit)) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/activity_store.py line 144
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
143 where, params = scope_sql(session_id, runtime, node_id) 144 sessions = self._fetch('SELECT status,ended_at,last_active_at,outcome FROM sessions ' 145 f'WHERE {where} ORDER BY updated_at DESC LIMIT 1', params) 146 body['execution'] = execution_state(sessions) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/activity_store.py line 112
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
111 where, params = _where(scope) 112 changes = self._fetch('SELECT position,event_id FROM event_changes ' 113 f'WHERE position>? AND position<=? AND {where} ' 114 'ORDER BY position LIMIT ?', [position, head, *params, lim + 1]) 115 body['has_more'] = len(changes) > lim -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/activity_store.py line 70
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
69 self._conn.execute( 70 'INSERT INTO event_changes(event_id,node_id,session_id,agent_type) ' 71 'SELECT id,node_id,session_id,agent_type FROM events ' 72 f'WHERE id IN ({marks}) ORDER BY id', chunk) 73 self._conn.execute('UPDATE event_change_head SET head=GREATEST(head, ' -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 9253
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
9252 prrows = self._fetch( 9253 "SELECT repo_root, number, state, merged_at, head_branch, " 9254 " merge_commit " 9255 f"FROM git_pull_requests WHERE repo_root IN ({placeholders})", 9256 rvals) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 8039
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
8038 prev = self._agent_component_dicts(self._conn.execute( 8039 f"SELECT {cols} FROM agent_components " 8040 "WHERE scope = ? AND workspace = ?", 8041 [str(scope or ""), str(workspace or "")]).fetchall()) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 8090
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
8089 rows = self._fetch( 8090 "SELECT " + ", ".join(self._AGENT_COMPONENT_COLS) + 8091 " FROM agent_components " + where + -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 8253
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
8252 where = ("WHERE " + " AND ".join(clauses)) if clauses else "" 8253 sql = (f"SELECT {', '.join(self._SELF_REPORT_COLS)} FROM agent_self_reports " 8254 f"{where} ORDER BY ts DESC, id LIMIT ?") 8255 params.append(lim) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 8381
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
8380 lim = 200 8381 sql = f""" 8382 SELECT id, requestor_session_id, action, status, created_at, 8383 resolved_at, resolver, decision_reason 8384 FROM approvals WHERE {' AND '.join(clauses)} 8385 ORDER BY COALESCE(resolved_at, created_at) DESC LIMIT ? 8386 """ 8387 params.append(lim) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 8442
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
8441 params.extend([rt, rt + ":%"]) 8442 sql = (f"SELECT session_id, agent_type, cwd, last_active_at FROM sessions " 8443 f"WHERE {' AND '.join(clauses)} ORDER BY last_active_at DESC NULLS LAST " 8444 f"LIMIT 400") 8445 try: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 8712
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
8711 rows = self._conn.execute( 8712 f"SELECT fingerprint, first_seen FROM guard_action_fingerprints " 8713 f"WHERE fingerprint IN ({marks})", ks).fetchall() 8714 out["first_seen"] = {r[0]: int(r[1]) for r in rows if r and r[0]} -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 8745
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
8744 rows = self._fetch( 8745 f"SELECT subagent_id, parent_session_id FROM subagents " 8746 f"WHERE subagent_id IN ({marks}) AND parent_session_id IS NOT NULL " 8747 f"AND parent_session_id <> ''", ids) 8748 nxt: set = set() -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 9123
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
9122 rows = self._fetch( 9123 f"SELECT {', '.join(cols)} FROM git_repos " 9124 "ORDER BY last_scanned_at DESC", []) 9125 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 9204
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
9203 srows = self._fetch( 9204 "SELECT session_id, cost_usd, cwd, git_branch, metadata " 9205 "FROM sessions WHERE " + " AND ".join(clauses), params) 9206 except Exception: -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 9261
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
9260 svrows = self._fetch( 9261 "SELECT repo_root, sha, added_lines, surviving_lines " 9262 f"FROM git_line_survival WHERE repo_root IN ({placeholders})", 9263 rvals) -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /clawmetry/local_store.py line 10041
- Likely real
- Uncertain, 46% confidence
Possible SQL injection vector through string-based query construction.
10040 limit = 100 10041 sql = ("SELECT " + ", ".join(self._GROUND_TRUTH_COLS) 10042 + " FROM session_ground_truth" -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 12943
- Likely real
- Yes, 93% confidence
Detects active collection of system information (hostname, platform, architecture, user) [threat-runtime-system-info]
hostname = socket.gethostname() try: result = validate_key(api_key, hostname=hostname, existing_node_id=saved_node_id) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/cli.py line 414
- Likely real
- Yes, 93% confidence
Detects active collection of system information (hostname, platform, architecture, user) [threat-runtime-system-info]
system = platform.system() # Read old config before stopping (to deregister old node_id) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /dashboard.py line 12954
- Likely real
- Yes, 93% confidence
Detects active collection of system information (hostname, platform, architecture, user) [threat-runtime-system-info]
"node_id": node_id, "platform": platform.system(), "connected_at": __import__("datetime").datetime.now().isoformat(), "encryption_key": enc_key, -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /.github/scripts/visual-diff.mjs line 49
- Likely real
- Yes, 93% confidence
Detects reading of environment variables (credential access, often contains secrets) [threat-runtime-environment-read]
// bootstrap JS shows the login overlay and every screenshot is just that. const AUTH_TOKEN = process.env.CLAWMETRY_VISUAL_DIFF_TOKEN || ""; // All canonical tabs in the OSS dashboard nav. Matches CANONICAL_TABS in -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/process_control.py line 815
- Likely real
- Yes, 92% confidence
Detects memory scraping and credential dumping from process memory [threat-process-memory]
try: _psutil.Process(int(pid)).resume() return True except Exception: # noqa: BLE001 -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/process_control.py line 804
- Likely real
- Yes, 92% confidence
Detects memory scraping and credential dumping from process memory [threat-process-memory]
try: _psutil.Process(int(pid)).suspend() return True except Exception: # noqa: BLE001 -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/process_control.py line 518
- Likely real
- Yes, 92% confidence
Detects memory scraping and credential dumping from process memory [threat-process-memory]
try: return float(_psutil.Process(int(pid)).create_time()) except Exception: # noqa: BLE001 - dead/zombie/perm return None -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/sync.py line 8613
- Likely real
- Yes, 83% confidence
Detects fully silent process execution (suppressing all output channels) [threat-process-spawn-silent]
res = subprocess.run( cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, timeout=2, ) -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/process_control.py line 922
- Likely real
- Yes, 83% confidence
Detects fully silent process execution (suppressing all output channels) [threat-process-spawn-silent]
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) return proc.returncode == 0 except Exception: # noqa: BLE001 -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /clawmetry/process_control.py line 893
- Likely real
- Yes, 83% confidence
Detects fully silent process execution (suppressing all output channels) [threat-process-spawn-silent]
creationflags=_WIN_DETACHED_PROCESS, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, ) except subprocess.TimeoutExpired: -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 4
- Likely real
- Probably noise, 6% confidence
Loose version constraint: 'certifi>=2024.7.4 # CA bundle: the trust-store fallback for 3.8/3.9 and for any interpreter with no CA store. Floor is the first release that drops the distrusted GLOBALTRUST root (CVE-2024-39689); same requires_python (' — attacker could push malicious update
certifi>=2024.7.4 # CA bundle: the trust-store fallback for 3.8/3.9 and for any interpreter with no CA store. Floor is the first release that drops the distrusted GLOBALTRUST root (CVE-2024-39689); same requires_python (>=3.6) as the floor it replaces -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 3
- Likely real
- Probably noise, 3% confidence
Loose version constraint: 'truststore>=0.10.4; python_version' — attacker could push malicious update
truststore>=0.10.4; python_version >= "3.10" # OS trust store for corporate TLS-interception CAs -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 5
- Likely real
- Probably noise, 3% confidence
Loose version constraint: 'zstandard>=0.25.0; python_version < "3.14" # decodes OpenClaw 2026.9.x zstd transcript events (stdlib from 3.14)' — attacker could push malicious update
zstandard>=0.25.0; python_version < "3.14" # decodes OpenClaw 2026.9.x zstd transcript events (stdlib from 3.14) -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 2
- Likely real
- Probably noise, 2% confidence
Loose version constraint: 'duckdb>=1.5.6 # local event store (epic #964 phase 1)' — attacker could push malicious update
duckdb>=1.5.6 # local event store (epic #964 phase 1) -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 9
- Likely real
- Probably noise, 2% confidence
Loose version constraint: 'pytest-playwright>=0.9.0' — attacker could push malicious update
pytest-playwright>=0.9.0 -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 8
- Likely real
- Probably noise, 2% confidence
Loose version constraint: 'pytest>=9.1.1' — attacker could push malicious update
pytest>=9.1.1 -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 10
- Likely real
- Probably noise, 2% confidence
Loose version constraint: 'requests>=2.34.2' — attacker could push malicious update
requests>=2.34.2 -
- Engine
- Dependency checker · CVEs, typosquats and risky installs
- Counts towards
- Supply chain
- File
- requirements.txt line 1
- Likely real
- Probably noise, 2% confidence
Loose version constraint: 'flask>=3.1.3,<4' — attacker could push malicious update
flask>=3.1.3,<4 -
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/doctor.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/license.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /integrations/nat/clawmetry_nat/exporter.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/providers/turso.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/eval_runner.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/trace.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/secure.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/pr_provenance.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/trace_capture.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/security_posture.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/assistant_stream.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/telemetry.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/cursor_connector.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/assistant_relay.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/adapters/openclaw.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/incident_alerts.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/narrator.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/attention_hook.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /CHANGELOG.md
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /Dockerfile
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/verify-published-wheel.yml
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/c6-health.yml
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.github/workflows/c6-apply-ruleset.yml
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/sync.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/cli.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/overview.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/local_query.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/alerts.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/meta.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/assistant_service.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/channels.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/trial.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/update_check.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /routes/advisor.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/instrument.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/approvals.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/url_guard.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/mcp_server.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/spike_unexplained_descendants.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/pr_trace_join.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/check_action_refs.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/auto_quarantine.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_otel_recipe_langgraph.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_published_wheel.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/canary_verify.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/accuracy_harness/keystone_e2e.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/resolve_selfhosted_runtime_pins.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/resolve_windows_pins.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/accuracy_harness/cloud_keystone_e2e.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/apply_required_status_checks.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/litellm_gateway_ci.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /install.sh
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/vendor_fonts.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/accuracy_harness/_lib.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/accuracy_harness/README.md
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /.claude/sf_client.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /deploy/self-hosted/Dockerfile.release
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /deploy/self-hosted/docker-compose.yml
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/cli_cmds/selfevolve.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/hooks_claude_code.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/adapters/nemo.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/briefs.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/claude_code_gate.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/proxy.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/selfhosted.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/otel_exporter.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/net.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /dashboard.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /clawmetry/insights.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /desktop/app.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /desktop/onboarding.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /desktop/tray.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_selfhosted_image.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_runtime_filtering.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_i18n_coverage.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/verify_vendor.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /scripts/e2e_gate.py
- Likely real
- Probably noise, 0% confidence
YARA rule matched: detect_downloader — Downloads a remote resource - common and low-signal alone; see detect_download_and_execute for the composite version
No findings match these filters.