Security Audit
AgriciDaniel/claude-seo:skills/seo-audit
github.com/AgriciDaniel/claude-seoTrust Assessment
AgriciDaniel/claude-seo:skills/seo-audit received a trust score of 85/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 Potential Command Injection via external script execution.
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 22, 2026 (commit 323e105a). 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 | Potential Command Injection via external script execution The skill description explicitly states that it will 'use `scripts/fetch_page.py` to retrieve HTML' from a target website. Given that the primary function of an SEO audit skill is to analyze a user-provided website, it is highly probable that the target URL for `fetch_page.py` will originate from untrusted user input. If this user-controlled URL is passed directly to `fetch_page.py` via a shell command (e.g., using `subprocess.run(shell=True)` in Python, or by concatenating the URL into a string that is then executed by the shell), a malicious user could craft a URL containing shell commands (e.g., `http://example.com; rm -rf /`) which would then be executed on the host system, leading to arbitrary code execution. Ensure all user-provided input, especially URLs, is thoroughly sanitized and validated before being used in any external script executions. When using `subprocess` in Python, always prefer passing arguments as a list (e.g., `subprocess.run(['python', 'script.py', sanitized_user_url])`) instead of a single string with `shell=True` to prevent shell interpretation. Ideally, for fetching web pages, use a dedicated HTTP client library (e.g., `requests` in Python) directly within the skill's code rather than shelling out to an external script, as this inherently reduces the risk of command injection. | Static | SKILL.md:6 |
Scan History
Embed Code
[](https://skillshield.io/report/c93d71b3e708bf10)
Powered by SkillShield