Trust Assessment
openscan 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 6 findings: 2 critical, 2 high, 1 medium, and 1 low severity. Key findings include Arbitrary command execution, Unsafe deserialization / dynamic eval, Node lockfile missing.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Manifest Analysis layer scored lowest at 18/100, indicating areas for improvement.
Last analyzed on February 12, 2026 (commit 9c1b8e80). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings6
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Arbitrary command execution Node.js child_process require 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. | Manifest | skills/dev-null321/openscan/lib/scanner.js:9 | |
| CRITICAL | Arbitrary command execution Node.js synchronous shell execution 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. | Manifest | skills/dev-null321/openscan/lib/scanner.js:205 | |
| HIGH | 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/dev-null321/openscan/lib/scanner.js:3 | |
| HIGH | Command Injection via execSync with user-controlled path The skill uses `child_process.execSync` to execute external commands (`codesign` and `file`) with a user-controlled `filePath` argument. Although the `filePath` is enclosed in double quotes, it is still vulnerable to command injection if the input contains shell metacharacters that can break out of the quotes or perform command substitution (e.g., backticks, `$()`). An attacker could craft a malicious `filePath` to execute arbitrary commands on the system where the skill is run. Replace `child_process.execSync` calls with `child_process.spawn` or `child_process.execFile` and pass the `filePath` as a separate argument in an array. This prevents shell interpretation of the argument. Alternatively, ensure the `filePath` is rigorously escaped for the target shell before being passed to `execSync`. | LLM | lib/scanner.js:130 | |
| 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/dev-null321/openscan/lib/scanner.js:126 | |
| LOW | Node lockfile missing package.json is present but no lockfile was found (package-lock.json, pnpm-lock.yaml, or yarn.lock). Commit a lockfile for deterministic dependency resolution. | Dependencies | skills/dev-null321/openscan/package.json |
Scan History
Embed Code
[](https://skillshield.io/report/0368533417c2e0e3)
Powered by SkillShield