Trust Assessment
wreckit-skill received a trust score of 63/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: 1 critical, 0 high, 1 medium, and 0 low severity. Key findings include Missing required field: name, Command Injection via `child_process.spawn` with `shell: true` and unsanitized user input.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. All layers scored 70 or above, reflecting consistent security practices.
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 `child_process.spawn` with `shell: true` and unsanitized user input The `scripts/run-wreckit.mjs` script uses `child_process.spawn` with the `shell: true` option. This causes the command string (composed of 'wreckit' and `wreckitArgs.join(' ')`) to be executed within a system shell. Several arguments, including `--cwd`, `--output`, `--time-window`, `--min-errors`, and positional arguments (like the item ID), are derived directly from `process.argv` (user-provided input) without proper sanitization or escaping. An attacker can inject arbitrary shell commands by including shell metacharacters (e.g., `;`, `|`, `&`, `$()`, `` ` ``) within these arguments. This allows for remote code execution on the host system where the skill is running. The default case for unrecognized commands also passes through the `command` and `remaining` arguments directly, further increasing the attack surface. 1. **Remove `shell: true`:** The most effective fix is to remove `shell: true` from the `spawn` options. When `shell: false` (the default), the first argument to `spawn` is treated as the executable, and subsequent arguments in the array are passed as literal arguments, preventing shell interpretation. This is the recommended approach for security. 2. **Strict Input Validation and Sanitization:** Implement robust validation for all user-provided arguments (e.g., ensure paths are valid and do not contain traversal sequences, IDs are alphanumeric, numbers are integers). If `shell: true` is absolutely necessary (which is rare and generally discouraged), all user-provided input must be meticulously sanitized and escaped to prevent shell metacharacter interpretation. This is complex and prone to errors. | LLM | scripts/run-wreckit.mjs:140 | |
| MEDIUM | Missing required field: name The 'name' field is required for claude_code skills but is missing from frontmatter. Add a 'name' field to the SKILL.md frontmatter. | Static | skills/jmanhype/wreckit-skill/SKILL.md:1 |
Scan History
Embed Code
[](https://skillshield.io/report/2c11a52ab6856cdc)
Powered by SkillShield