Trust Assessment
duby received a trust score of 86/100, placing it in the Mostly Trusted category. This skill has passed most security checks with only minor considerations noted.
SkillShield's automated analysis identified 1 finding: 0 critical, 1 high, 0 medium, and 0 low severity. Key findings include Unsanitized user input in JSON payload leads to Command Injection.
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 Findings1
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Unsanitized user input in JSON payload leads to Command Injection The `TEXT` (`$1`) and `VOICE_ID` (`$2`) parameters are directly interpolated into the JSON payload within the `curl` command's `-d` argument. This allows an attacker to inject arbitrary JSON fields or manipulate existing ones by including double quotes and other JSON syntax in their input. This could lead to API abuse, denial of service, or unexpected behavior on the remote Duby.so service by altering the intended request parameters. Use `jq` to construct the JSON payload, ensuring proper escaping of user-provided strings before sending them via `curl`. For example: ```bash JSON_PAYLOAD=$(jq -n \ --arg voice_id "$VOICE_ID" \ --arg text "$TEXT" \ '{clone_job_id: $voice_id, text: $text, speed_factor: 1.1}') RESPONSE=$(curl -s -X POST "https://api.duby.so/openapi/tts/jobs" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d "$JSON_PAYLOAD") ``` | LLM | tts.sh:19 |
Scan History
Embed Code
[](https://skillshield.io/report/2fda09346a990feb)
Powered by SkillShield