Trust Assessment
specstory-guard 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 8 findings: 3 critical, 4 high, 1 medium, and 0 low severity. Key findings include Malicious install hooks, Arbitrary command execution, Hardcoded Bearer Token detected.
The analysis covered 4 layers: manifest_analysis, llm_behavioral_safety, dependency_graph, static_code_analysis. The manifest_analysis layer scored lowest at 10/100, indicating areas for improvement.
Last analyzed on February 11, 2026 (commit 9454d3f2). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings8
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Malicious install hooks Python setup.py with suspicious imports Review all lifecycle scripts carefully. Remove install hooks that make network requests, execute shell commands, or access environment variables. Use --ignore-scripts for npm installs when possible. | Unknown | /var/folders/1k/67b8r20n777f_xcmmm8b7m5h0000gn/T/skillscan-clone-ylo40438/repo/skills/specstory-guard/scripts/setup.py:18 | |
| 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 | /var/folders/1k/67b8r20n777f_xcmmm8b7m5h0000gn/T/skillscan-clone-ylo40438/repo/skills/specstory-guard/scripts/guard.py:20 | |
| 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 | /var/folders/1k/67b8r20n777f_xcmmm8b7m5h0000gn/T/skillscan-clone-ylo40438/repo/skills/specstory-guard/scripts/setup.py:32 | |
| HIGH | Hardcoded Bearer Token detected A hardcoded Bearer Token was found. Secrets should be stored in environment variables or a secret manager. Replace the hardcoded secret with an environment variable reference. | Unknown | /var/folders/1k/67b8r20n777f_xcmmm8b7m5h0000gn/T/skillscan-clone-ylo40438/repo/skills/specstory-guard/SKILL.md:80 | |
| HIGH | Dangerous call: subprocess.call() Call to 'subprocess.call()' detected in function 'run_python'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Unknown | /var/folders/1k/67b8r20n777f_xcmmm8b7m5h0000gn/T/skillscan-clone-ylo40438/repo/skills/specstory-guard/scripts/guard.py:20 | |
| HIGH | Dangerous call: subprocess.run() Call to 'subprocess.run()' detected in function 'repo_root'. This can execute arbitrary code. Avoid using dangerous functions like exec/eval/os.system. Use safer alternatives. | Unknown | /var/folders/1k/67b8r20n777f_xcmmm8b7m5h0000gn/T/skillscan-clone-ylo40438/repo/skills/specstory-guard/scripts/setup.py:32 | |
| HIGH | Excessive Read Permissions via --history-dir The `scan.py` script allows the `--history-dir` argument to specify an arbitrary absolute path. When `os.path.join` is used with an absolute path as a component, it discards previous path components, effectively allowing the skill to read files from any directory on the filesystem, not just within the intended `.specstory/history` directory of the repository. This grants broader read access than necessary and could lead to unauthorized data access. Validate that the `history_dir` argument, if provided, is a relative path or a subdirectory of the `--root` path. Prevent it from being an absolute path or containing path traversal sequences (e.g., `../`). For example, check if `os.path.isabs(override)` is true and raise an error, or normalize the path to ensure it stays within the intended scope. | Unknown | scripts/scan.py:49 | |
| MEDIUM | Regular Expression Denial of Service (ReDoS) via SPECSTORY_GUARD_ALLOWLIST The skill allows users to provide custom regular expression patterns via the `SPECSTORY_GUARD_ALLOWLIST` environment variable. These patterns are compiled and used for matching. If an attacker can control this environment variable, they could inject a maliciously crafted regex (e.g., a 'catastrophic backtracking' pattern) that causes the scanning process to consume excessive CPU resources, leading to a Regular Expression Denial of Service (ReDoS) attack. Implement validation or sanitization for user-provided regex patterns to mitigate ReDoS risks. This could involve using a regex linter, limiting the complexity of patterns, or using a safer regex engine if available. Alternatively, consider if allowing arbitrary regex from an environment variable is strictly necessary for the skill's core function. | Unknown | scripts/scan.py:78 |
Scan History
Embed Code
[](https://skillshield.io/report/2a7d84014fa950d2)
Powered by SkillShield