Trust Assessment
kpi-dashboard received a trust score of 74/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: 0 critical, 1 high, 2 medium, and 0 low severity. Key findings include Missing required field: name, Arbitrary File Write via export_to_excel, HTML Injection (XSS) in generated dashboard.
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 Findings3
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Arbitrary File Write via export_to_excel The `export_to_excel` function allows writing an Excel file to an arbitrary path specified by the `output_path` argument. An attacker could manipulate the LLM to call this function with a sensitive or critical file path (e.g., `/etc/passwd`, `~/.ssh/id_rsa`, `/var/log/apache2/access.log`), leading to overwriting system files, creating malicious files, or potentially exfiltrating data by writing to publicly accessible locations. This grants excessive filesystem write permissions. Restrict the `output_path` to a safe, sandboxed directory (e.g., a temporary directory or a specific user-controlled output directory). Do not allow arbitrary file paths to be specified by the LLM or user input. Implement strict path validation and sanitization. | LLM | SKILL.md:266 | |
| MEDIUM | Missing required field: name The 'name' field is required for claude_code skills but is missing from frontmatter. Add a 'name' field to the SKILL.md frontmatter. | Static | skills/datadrivenconstruction/kpi-dashboard/SKILL.md:1 | |
| MEDIUM | HTML Injection (XSS) in generated dashboard The `generate_html_dashboard` function directly embeds `self.project_name` and `kpi.name` into the generated HTML without proper sanitization. If these values are controlled by untrusted input (e.g., provided by the LLM based on user prompts), an attacker could inject malicious HTML or JavaScript. If the generated HTML is subsequently processed or rendered by the LLM or a user, this could lead to Cross-Site Scripting (XSS), allowing for prompt injection (manipulating the LLM's behavior), data exfiltration, or other client-side attacks. Sanitize all user-provided or LLM-generated strings (e.g., `project_name`, `kpi.name`) before embedding them directly into HTML. Use an HTML escaping utility to convert special characters into their HTML entities. | LLM | SKILL.md:208 |
Scan History
Embed Code
[](https://skillshield.io/report/35eee490aee366c8)
Powered by SkillShield