Trust Assessment
tubeclaw 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: 3 critical, 0 high, 1 medium, and 1 low severity. Key findings include Arbitrary command execution, Missing required field: name, Node lockfile missing.
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 14, 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 Node.js child_process require 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/snail3d/tubeclaw/analyze.js:8 | |
| CRITICAL | Arbitrary command execution Node.js synchronous shell execution 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/snail3d/tubeclaw/analyze.js:50 | |
| CRITICAL | Command Injection via `videoUrl` in `execSync` The `videoUrl` parameter, which originates from user-controlled input (e.g., command-line argument or programmatic call), is directly interpolated into a shell command executed via `child_process.execSync`. Although the `videoUrl` is enclosed in double quotes within the command string, an attacker can craft a malicious URL containing a double quote followed by shell metacharacters (e.g., `;`, `&&`, `|`, `$(...)`) to break out of the quotes and execute arbitrary commands on the host system. For example, a URL like `https://youtube.com/watch?v=abc"; rm -rf /tmp #` would lead to the execution of `rm -rf /tmp`. 1. Avoid using `child_process.execSync` or `child_process.exec` with user-controlled input. These functions are prone to shell injection. 2. If external command execution is absolutely necessary, use `child_process.spawn` or `child_process.execFile` with an array of arguments. This prevents the shell from interpreting metacharacters in the arguments. 3. Implement strict input validation and sanitization for `videoUrl` to ensure it only contains expected characters and does not include any shell metacharacters or unexpected characters. 4. Consider interacting with the `video-transcript-downloader` skill programmatically if it exposes an API, rather than shelling out to its script. | LLM | analyze.js:49 | |
| 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/snail3d/tubeclaw/SKILL.md:1 | |
| LOW | Node lockfile missing package.json is present but no lockfile was found (package-lock.json, pnpm-lock.yaml, or yarn.lock). Commit a lockfile for deterministic dependency resolution. | Dependencies | skills/snail3d/tubeclaw/package.json |
Scan History
Embed Code
[](https://skillshield.io/report/e8f17fb98dc77b7b)
Powered by SkillShield