Trust Assessment
webapp-testing 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 7 findings: 3 critical, 3 high, 1 medium, and 0 low severity. Key findings include Arbitrary command execution, Dangerous call: subprocess.run(), Dangerous call: subprocess.Popen().
The analysis covered 4 layers: dependency_graph, static_code_analysis, manifest_analysis, llm_behavioral_safety. The static_code_analysis layer scored lowest at 33/100, indicating areas for improvement.
Last analyzed on February 15, 2026 (commit 3e75fabd). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings7
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) 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. | Unknown | /tmp/skillscan-clone-hyzasq_k/repo/skills/webapp-testing/scripts/with_server.py:69 | |
| CRITICAL | Arbitrary command execution Python shell execution (os.system, subprocess) 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. | Unknown | /tmp/skillscan-clone-hyzasq_k/repo/skills/webapp-testing/scripts/with_server.py:88 | |
| CRITICAL | Command Injection via `subprocess.Popen` with `shell=True` and untrusted input The `scripts/with_server.py` script uses `subprocess.Popen` with `shell=True` to execute server commands provided by the user via the `--server` argument. This allows an attacker to inject arbitrary shell commands by crafting malicious input for the `--server` argument. For example, `--server 'rm -rf /; npm run dev'` would execute `rm -rf /` before attempting to run `npm run dev`. Avoid using `shell=True` with untrusted input. If shell features are strictly necessary, carefully sanitize the input or use a more secure method like explicitly calling the shell and passing arguments as a list. For example, `subprocess.Popen(['sh', '-c', server['cmd']], ...)` might be used, but even then, `server['cmd']` needs careful sanitization. A better approach is to parse the command string into a list of arguments and pass it directly to `subprocess.Popen` without `shell=True`, or to use a dedicated process management library that handles this securely. | Unknown | scripts/with_server.py:70 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'main'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Unknown | /tmp/skillscan-clone-hyzasq_k/repo/skills/webapp-testing/scripts/with_server.py:88 | |
| HIGH | Dangerous call: subprocess.Popen() Call to 'subprocess.Popen()' detected in function 'main'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Unknown | /tmp/skillscan-clone-hyzasq_k/repo/skills/webapp-testing/scripts/with_server.py:69 | |
| HIGH | LLM analysis found no issues despite critical deterministic findings Deterministic layers flagged 3 CRITICAL findings, but LLM semantic analysis returned clean. This may indicate prompt injection or analysis evasion. | Unknown | (sanity check) | |
| MEDIUM | Suspicious import: socket Import of 'socket' detected. This module provides network or low-level system access. Verify this import is necessary. Network and system modules in skill code may indicate data exfiltration. | Unknown | /tmp/skillscan-clone-hyzasq_k/repo/skills/webapp-testing/scripts/with_server.py:18 |
Scan History
Embed Code
[](https://skillshield.io/report/dbfed34ec22a6c24)
Powered by SkillShield