Trust Assessment
deeptools received a trust score of 60/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: 1 critical, 0 high, 1 medium, and 1 low severity. Key findings include Network egress to untrusted endpoints, Covert behavior / concealment directives, Command Injection in Generated Workflow Scripts.
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 12, 2026 (commit 458b1186). 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 in Generated Workflow Scripts The `scripts/workflow_generator.py` script generates bash scripts by directly interpolating user-provided arguments (e.g., `input_bam`, `chip_bams`, `genome_size`, `threads`, `output_dir`, `genes_bed`, `peaks_bed`) into the script content using f-strings. If a malicious user provides input containing shell metacharacters (e.g., `;`, `&&`, `|`, `$()`, `` ` ``), these characters will be executed as arbitrary commands when the generated bash script is run. This allows for arbitrary command execution with the privileges of the user running the generated script. All user-provided parameters interpolated into generated shell scripts must be properly sanitized. For string parameters (like file paths and output directories), use `shlex.quote()` in Python to escape shell metacharacters before insertion. For numeric parameters (like `genome_size` and `threads`), strictly validate that they are integers and convert them to integers before insertion, preventing any non-numeric input from being treated as code. Example: `INPUT_BAM="{shlex.quote(params.get('input_bam', 'Input.bam'))}"` and `GENOME_SIZE={int(params.get('genome_size', '2913022398'))}` after validation. | Static | scripts/workflow_generator.py:30 | |
| MEDIUM | Network egress to untrusted endpoints HTTP request to raw IP address Review all outbound network calls. Remove connections to webhook collectors, paste sites, and raw IP addresses. Legitimate API calls should use well-known service domains. | Manifest | cli-tool/components/mcps/devtools/figma-dev-mode.json:4 | |
| LOW | Covert behavior / concealment directives Multiple zero-width characters (stealth text) Remove hidden instructions, zero-width characters, and bidirectional overrides. Skill instructions should be fully visible and transparent to users. | Manifest | cli-tool/components/mcps/devtools/jfrog.json:4 |
Scan History
Embed Code
[](https://skillshield.io/report/6eece7036d86059a)
Powered by SkillShield