Trust Assessment
binance-dca-tool received a trust score of 65/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 2 findings: 2 critical, 0 high, 0 medium, and 0 low severity. Key findings include Command Injection via Python `exec` in `action_balance`, Command Injection via Python `exec` in `action_plan`.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety 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 Findings2
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Command Injection via Python `exec` in `action_balance` The `action_balance` function constructs a Python script string by directly interpolating the user-controlled `$asset` variable. An attacker can inject arbitrary Python code by providing a specially crafted `asset` value (e.g., `USDT'); import os; os.system('evil_command'); #`). This allows for arbitrary command execution on the host system where the script is executed. Pass user-controlled variables to the Python script as command-line arguments (e.g., `python3 -c "import sys; asset = sys.argv[1]; ..." "$asset"`) instead of direct string interpolation. This prevents code injection by ensuring the variable's content is treated as data, not code. | LLM | scripts/dca.sh:83 | |
| CRITICAL | Command Injection via Python `exec` in `action_plan` The `action_plan` function constructs a Python script string by directly interpolating user-controlled variables (`$amount`, `$periods`, `$frequency`, `$symbol`). An attacker can inject arbitrary Python code by providing specially crafted values (e.g., `50'); import os; os.system('evil_command'); #`). This allows for arbitrary command execution on the host system where the script is executed. Pass user-controlled variables to the Python script as command-line arguments (e.g., `python3 -c "import sys; amount = float(sys.argv[1]); ..." "$amount"`) instead of direct string interpolation. This prevents code injection by ensuring the variable's content is treated as data, not code. Apply this to all interpolated user-controlled variables (`amount`, `periods`, `frequency`, `symbol`). | LLM | scripts/dca.sh:140 |
Scan History
Embed Code
[](https://skillshield.io/report/2de4a1ca2c3aee04)
Powered by SkillShield