Scan report
storytold / artcraft
Could an attacker exploit mistakes in this code?
Minor issues. Worth a glance, unlikely to be urgent.
- High
- 0
- Medium
- 1
- Low
- 11
Sources: Bandit, Semgrep, pip-audit
Does this code look like it is trying to cause harm?
Minor issues. Worth a glance, unlikely to be urgent.
- High
- 3
- Medium
- 0
- Low
- 5
Sources: YARA, ClamAV, GuardDog, dependency checker
- Likely real
- 3
- Uncertain
- 1
- Likely noise
- 16
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
The repository has a low overall vulnerability score of 3.0, which means there are some insecure coding patterns that could be exploited if an attacker finds them, but these issues do not indicate malicious intent. The scan also identified several signs that the code might be intentionally harmful, such as downloading and executing remote files or attempting to harvest credentials from environment variables. While one specific finding suggests a process is being run silently without any output, this behavior alone does not confirm that the code is dangerous. Most of the flagged issues relate to standard security practices like handling timeouts for API calls or checking subprocess inputs, which are common mistakes rather than deliberate attacks. Therefore, while the code contains some risky patterns that should be addressed, it does not appear to be a malicious repository based on these specific indicators.
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.
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /_docs/artcraft_omni_api.md
- 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
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py
- Likely real
- Probably noise, 3% confidence
YARA rule matched: detect_base64_exec — Encoded payload decoded and then executed
-
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.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
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/openai_sora_client/src/requests/auth_sentinel_2/metadata/python_impl/sentinel_token.py line 20
- Likely real
- Probably noise, 22% confidence
Call to requests without timeout
19 try: 20 response = requests.post( 21 url = "https://chatgpt.com/backend-api/sentinel/req", 22 data = generate_payload({'p': pow_token}, flow), 23 ) 24 -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /crates/api_clients/fal_client/src/requests/core_api/fal_request.rs line 52
- Likely real
- Yes, 93% confidence
Detects reading of environment variables (credential access, often contains secrets) [threat-runtime-environment-read]
params, api_key: std::env::var("FAL_API_KEY").ok(), sync_base_url: DEFAULT_SYNC_BASE_URL.to_string(), queue_base_url: DEFAULT_QUEUE_BASE_URL.to_string(), -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /frontend/scripts/unix-dev.mjs line 86
- Likely real
- Yes, 83% confidence
Detects fully silent process execution (suppressing all output channels) [threat-process-spawn-silent]
// All cargo/rustc/app descendants inherit this private Unix process group. detached: true, stdio: ["ignore", "inherit", "inherit"], env: { -
- Engine
- GuardDog · Supply-chain attack heuristics
- Counts towards
- Malicious pattern
- File
- /frontend/scripts/unix-dev.mjs line 87
- Likely real
- Yes, 83% confidence
Detects fully silent process execution (suppressing all output channels) [threat-process-spawn-silent]
detached: true, stdio: ["ignore", "inherit", "inherit"], env: { ...process.env, -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 208
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
207 208 except Exception: 209 continue 210 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 92
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
91 92 except Exception: 93 continue 94 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 128
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
127 128 except Exception: 129 continue 130 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 246
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
245 246 except Exception: 247 continue 248 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 271
- Likely real
- Probably noise, 28% confidence
Try, Except, Continue detected.
270 271 except Exception: 272 continue 273 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 59
- Likely real
- Probably noise, 14% confidence
Consider possible security implications associated with the subprocess module.
58 """策略1: 使用curl + 代理""" 59 import subprocess 60 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 99
- Likely real
- Probably noise, 14% confidence
Consider possible security implications associated with the subprocess module.
98 """策略2: 使用不同的User-Agent""" 99 import subprocess 100 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 218
- Likely real
- Probably noise, 14% confidence
Consider possible security implications associated with the subprocess module.
217 """策略5: 尝试替代端点""" 218 import subprocess 219 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 122
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
121 122 result = subprocess.run(curl_command, capture_output=True, text=True, timeout=10) 123 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 238
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
237 238 result = subprocess.run(curl_command, capture_output=True, text=True, timeout=8) 239 -
- Engine
- Bandit · Python security linter
- Counts towards
- Vulnerability
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.py line 86
- Likely real
- Probably noise, 3% confidence
subprocess call - check for execution of untrusted input.
85 86 result = subprocess.run(curl_command, capture_output=True, text=True, timeout=15) 87 -
- Engine
- YARA · Malware signature rules
- Counts towards
- Malicious pattern
- File
- /crates/api_clients/grok_consumer_client/src/credentials/_metadata/crypto_signature/xStatsigIDGenerator.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
- /_docs/artcraft_omni_api.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
No findings match these filters.