Trust Assessment
safe-calculator 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 9 findings: 9 critical, 0 high, 0 medium, and 0 low severity. Key findings include Arbitrary command execution, Dangerous call: eval(), Dangerous call: exec().
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 0/100, indicating areas for improvement.
Last analyzed on July 1, 2026 (commit 41fec4a9). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings9
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Python dynamic code execution (exec/eval/compile) 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 | evals/skills/command-injection/eval-execution/calculate.py:18 | |
| CRITICAL | Arbitrary command execution Python dynamic code execution (exec/eval/compile) 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 | evals/skills/command-injection/eval-execution/calculate.py:24 | |
| CRITICAL | Arbitrary command execution Python dynamic code execution (exec/eval/compile) 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 | evals/skills/command-injection/eval-execution/calculate.py:25 | |
| CRITICAL | Arbitrary command execution Python dynamic code execution (exec/eval/compile) 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 | evals/skills/command-injection/eval-execution/calculate.py:31 | |
| CRITICAL | Arbitrary command execution Python dynamic code execution (exec/eval/compile) 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 | evals/skills/command-injection/eval-execution/calculate.py:32 | |
| CRITICAL | Dangerous call: eval() Call to 'eval()' detected in function 'calculate'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | evals/skills/command-injection/eval-execution/calculate.py:25 | |
| CRITICAL | Dangerous call: exec() Call to 'exec()' detected in function 'process_formula'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Static | evals/skills/command-injection/eval-execution/calculate.py:32 | |
| CRITICAL | Arbitrary Code Execution via eval() The `calculate` function uses Python's built-in `eval()` function to evaluate user-supplied mathematical expressions. This allows an attacker to execute arbitrary Python code, leading to remote code execution (RCE) or command injection within the execution environment. Avoid using `eval()`. Use a safe mathematical expression parser like `ast.literal_eval` (for simple literals) or a dedicated parsing library such as `sympy` or `pyparsing` to safely evaluate mathematical expressions. | LLM | calculate.py:25 | |
| CRITICAL | Arbitrary Code Execution via exec() The `process_formula` function uses Python's built-in `exec()` function to execute dynamically constructed strings containing user-supplied variables and formulas. This allows arbitrary Python code execution. Avoid using `exec()`. Store variables in a standard Python dictionary instead of dynamically executing code to assign variables. | LLM | calculate.py:32 |
Scan History
Embed Code
[](https://skillshield.io/report/4e1fe14b320fc593)
Powered by SkillShield