Trust Assessment
signal-cli received a trust score of 10/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 5 findings: 2 critical, 3 high, 0 medium, and 0 low severity. Key findings include Arbitrary command execution, Dangerous call: subprocess.run(), Arbitrary file attachment for data exfiltration.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 40/100, indicating areas for improvement.
Last analyzed on February 13, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings5
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/pseudobun/signal-cli/scripts/find_contact.py:5 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) Review all shell execution calls. Ensure commands are static (not built from user input), use absolute paths, and are strictly necessary. Prefer library APIs over shell commands. | Manifest | skills/pseudobun/signal-cli/scripts/send_message.py:6 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'run'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/pseudobun/signal-cli/scripts/find_contact.py:5 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'run'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | skills/pseudobun/signal-cli/scripts/send_message.py:6 | |
| HIGH | Arbitrary file attachment for data exfiltration The `send_message.py` script allows attaching arbitrary files specified by their path. The `Path(a).expanduser()` function resolves user-provided paths, including those outside the skill's directory. An attacker could craft a prompt to instruct the LLM to send sensitive local files (e.g., configuration files, private keys, user data) as attachments via Signal, leading to data exfiltration. The skill's documentation (`SKILL.md`) does not explicitly warn about this broad file access capability, which could lead to an LLM inadvertently exposing sensitive data. Restrict attachment paths to a specific, sandboxed directory, or implement explicit user confirmation for each attachment, especially for paths outside a designated safe zone. Alternatively, clearly document this capability and its risks in `SKILL.md` and ensure the LLM is instructed to always confirm file attachments with the user, especially for sensitive paths. | LLM | scripts/send_message.py:49 |
Scan History
Embed Code
[](https://skillshield.io/report/31ec53b56c90dc5b)
Powered by SkillShield