Trust Assessment
proof-of-quality received a trust score of 63/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 2 findings: 1 critical, 0 high, 1 medium, and 0 low severity. Key findings include Unsafe deserialization / dynamic eval, Arbitrary File Read via User-Controlled Path.
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 Findings2
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary File Read via User-Controlled Path The `poq.js` script constructs a file path (`skillPath`) directly from user input (`process.argv[2]`) without sufficient validation or sanitization. This `skillPath` is then used with `fs.readFileSync` to read file content. An attacker can exploit this to read arbitrary files on the system that the running process has access to, potentially leading to data exfiltration of sensitive system files (e.g., `/etc/passwd`, configuration files, private keys). Implement strict validation and sanitization for `skillPath`. Ensure that the path is restricted to an intended directory (e.g., a dedicated 'skills' folder) and does not allow directory traversal (e.g., disallow '..' segments, absolute paths, or symlinks). Consider using `path.resolve` and `path.join` with a base directory to ensure paths stay within a safe boundary. Alternatively, implement a whitelist of allowed skill names rather than allowing arbitrary paths. | LLM | poq.js:27 | |
| MEDIUM | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kunoiiv/proof-of-quality/poq.js:9 |
Scan History
Embed Code
[](https://skillshield.io/report/8167ee7030bb50c7)
Powered by SkillShield