Trust Assessment
aioz-stream-video-upload 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 3 findings: 2 critical, 1 high, 0 medium, and 0 low severity. Key findings include Command Injection via Unquoted API Keys in Curl Headers, Command Injection via Unquoted File Paths in System Commands and Curl, Command Injection via Unquoted Variables in Curl URLs and JSON Payloads.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 25/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 Findings3
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Command Injection via Unquoted API Keys in Curl Headers All shell scripts directly interpolate user-provided API keys (PUBLIC_KEY, SECRET_KEY) into `curl -H` arguments without proper quoting. An attacker can inject arbitrary shell commands or additional curl arguments by crafting a malicious API key, leading to remote code execution, data exfiltration, or credential harvesting. For example, a crafted PUBLIC_KEY like `foo' -H 'X-Evil: $(id)'` could execute `id` on the host system. Always quote variables when used in shell commands, especially when constructing `curl` arguments. For API keys, consider passing them via environment variables or using a more robust method than direct string interpolation. Example: `-H "stream-public-key: $PUBLIC_KEY"` (though this still allows injection if the variable itself contains a double quote, a more robust solution would involve sanitization or using a dedicated HTTP client library). For shell scripts, ensure variables are properly escaped or validated to prevent shell metacharacter interpretation. A safer approach for JSON data is to use `jq` to construct the JSON payload. | LLM | scripts/calculate_cost.sh:17 | |
| CRITICAL | Command Injection via Unquoted File Paths in System Commands and Curl The `upload_thumbnail.sh` and `upload_video_file.sh` scripts use user-provided file paths (`THUMBNAIL_PATH`, `FILE_PATH`) directly with system commands like `stat`, `md5sum`, `dd`, and in `curl -F "file=@$FILE_PATH"`. If a malicious file path containing shell metacharacters (e.g., `'; rm -rf /'`) is provided, it can lead to arbitrary command execution on the host system, allowing for data deletion, modification, or exfiltration. Always quote variables when used in shell commands to prevent shell metacharacter interpretation. Validate file paths to ensure they do not contain malicious characters or attempt directory traversal. Example: `FILE_SIZE=$(stat -f%z "$FILE_PATH" 2>/dev/null || stat -c%s "$FILE_PATH")` (already quoted here, but the issue is pervasive in other parts of the script and other scripts). The `md5sum` and `dd` commands also need careful quoting. For `curl -F "file=@$FILE_PATH"`, ensure `$FILE_PATH` is properly quoted and sanitized. | LLM | scripts/upload_video_file.sh:24 | |
| HIGH | Command Injection via Unquoted Variables in Curl URLs and JSON Payloads Multiple scripts interpolate user-provided variables (`VIDEO_ID`, `DURATION`, `QUALITIES`, `TITLE`) directly into `curl` URLs or JSON payloads without proper sanitization or quoting. This allows an attacker to inject shell metacharacters into the URL or JSON string, potentially leading to command injection. For example, a `VIDEO_ID` like `123$(evil_command)` could execute `evil_command` when interpolated into the URL. Similarly, a `TITLE` like `My Video", "evil_key": "$(rm -rf /)"` could break the JSON structure and execute arbitrary commands. Always quote variables when used in shell commands. For URL parameters, use `urlencode` if available or ensure the variable is strictly validated. For JSON payloads, use a JSON parsing utility like `jq` to safely construct the JSON object from variables, preventing injection. Example for JSON: `jq -n --arg title "$TITLE" '{title: $title}'`. | LLM | scripts/create_video_default.sh:17 |
Scan History
Embed Code
[](https://skillshield.io/report/28176e2dc4fe76f1)
Powered by SkillShield