Trust Assessment
video-wrapper 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 10 findings: 2 critical, 2 high, 6 medium, and 0 low severity. Key findings include File read + network send exfiltration, Sensitive path access: AI agent config, Unpinned Python dependency version.
The analysis covered 4 layers: dependency_graph, manifest_analysis, llm_behavioral_safety, static_code_analysis. The manifest_analysis layer scored lowest at 40/100, indicating areas for improvement.
Last analyzed on February 14, 2026 (commit 029974a7). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings10
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | File read + network send exfiltration AI agent config/credential file access Remove access to sensitive files not required by the skill's stated purpose. SSH keys, cloud credentials, and browser data should never be read by skills unless explicitly part of their declared functionality. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/SKILL.md:177 | |
| CRITICAL | File read + network send exfiltration AI agent config/credential file access Remove access to sensitive files not required by the skill's stated purpose. SSH keys, cloud credentials, and browser data should never be read by skills unless explicitly part of their declared functionality. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/SKILL.md:208 | |
| HIGH | Sensitive path access: AI agent config Access to AI agent config path detected: '~/.claude/'. This may indicate credential theft. Verify that access to this sensitive path is justified and declared. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/SKILL.md:177 | |
| HIGH | Sensitive path access: AI agent config Access to AI agent config path detected: '~/.claude/'. This may indicate credential theft. Verify that access to this sensitive path is justified and declared. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/SKILL.md:208 | |
| MEDIUM | Unpinned Python dependency version Requirement 'moviepy>=1.0.3' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/requirements.txt:1 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pillow>=10.0.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/requirements.txt:2 | |
| MEDIUM | Unpinned Python dependency version Requirement 'numpy>=1.24.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/requirements.txt:3 | |
| MEDIUM | Unpinned Python dependency version Requirement 'pysrt>=1.1.2' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/requirements.txt:4 | |
| MEDIUM | Unpinned Python dependency version Requirement 'playwright>=1.40.0' is not pinned to an exact version. Pin Python dependencies with '==<exact version>'. | Unknown | /tmp/skillscan-clone-tpfjxk8b/repo/requirements.txt:5 | |
| MEDIUM | Potential XSS-like vulnerability in Playwright rendering The `browser_renderer.py` component uses Playwright to render HTML/CSS/Anime.js effects. It passes user-controlled data from the `config.json` (e.g., `text`, `name`, `title`, `description`) to JavaScript functions within local HTML templates via `page.evaluate()`. If these HTML templates (`templates/*.html`) render these strings directly into the DOM using methods like `innerHTML` without proper sanitization, an attacker could inject malicious JavaScript or CSS. This could lead to Cross-Site Scripting (XSS) within the Playwright browser context, potentially allowing data exfiltration (e.g., making network requests from the browser) or defacement of the rendered video frames. Review all HTML templates (`templates/*.html`) and their associated JavaScript functions (e.g., `initAnimation`, `seekTo`). Ensure that any user-controlled strings (such as `text`, `name`, `title`, `description`, `style`, `theme`) are properly escaped before being inserted into the DOM. Prefer using `textContent` or `innerText` over `innerHTML` for displaying text. If `innerHTML` is necessary, use a robust sanitization library to strip out potentially malicious tags and attributes. Additionally, validate and sanitize `style` and `theme` inputs to prevent arbitrary CSS injection. | Unknown | src/browser_renderer.py:70 |
Scan History
Embed Code
[](https://skillshield.io/report/9793f5532e5dc504)
Powered by SkillShield