github.com / mbailey
mbailey/ voicemode
Python·594 files·commit 74a17ab·scanned 4d ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 25 — 1,417 stars — findings likely legitimate code patterns
verdict accurate?
threat-state: lowlive
FINDINGS ░▒▓
criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.docs/web/install.sh
# Usage: # curl -fsSL https://getvoicemode.com/install.sh | bash # curl -fsSL https://getvoicemode.com/install.sh | bash -s -- -y # non-interactive # curl -fsSL https://getvoicemode.com/install...+10
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.installer/voicemode_install/checker.py
try:
subprocess.run(
command,
shell=True,+4warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.installer/voicemode_install/cli.py
try:
result = subprocess.run(
['voicemode', '--version'],
capture_output=True,+4warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.tests/test_audio_guard.py
before = len(audio_guard.HITS)
subprocess.run([sys.executable, "-c", "pass"], check=True)
assert len(audio_guard.HITS) == before
+4criticalPython dynamic code executioneval(), exec() or compile() on untrusted input can execute arbitrary code. Common in Python malware for running obfuscated payloads.tests/test_server_syntax.py
with open('{server_path}', 'r') as f:
compile(f.read(), '{server_path}', 'exec')
print("OK")
except SyntaxError as e:+7Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.
358 files scanned @ 74a17ab | 10/25/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration0
file system access0
obfuscation0
supply chain0
owasp / injection0
telemetry
files 358/594rules hit 6engine v7commit 74a17ab
github
mbailey/voicemode
Natural voice conversations with Claude Code
1417
198
508d
594 files
358 scanned(60%)
74a17ab
architecture░▒▓
entry (0) flagged (10) pkg (229)
562 nodes · 1908 edgesscroll to zoom · click node to jump to finding