Security Audit
mrdulasolutions/exchekskills:exchek-export-docs
github.com/mrdulasolutions/exchekskillsTrust Assessment
mrdulasolutions/exchekskills:exchek-export-docs received a trust score of 42/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 5 findings: 1 critical, 1 high, 1 medium, and 2 low severity. Key findings include Unpinned npm dependency version, Node lockfile missing, Potential Command Injection via User-Controlled Path.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The Static Code Analysis layer scored lowest at 53/100, indicating areas for improvement.
Last analyzed on March 18, 2026 (commit c49adb39). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings5
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Potential Command Injection via User-Controlled Path The skill explicitly instructs the LLM to execute a shell command `node exchek-docx/scripts/report-to-docx.mjs <full-path-to-temp.md>`. The `<full-path-to-temp.md>` is constructed using a user-chosen folder name (Step 1: 'Ask where to save'). If the LLM directly interpolates this user-provided folder name into the shell command without proper sanitization or escaping, a malicious user could inject arbitrary shell commands (e.g., by providing a folder name like `my_reports; rm -rf /;`). This allows for arbitrary code execution on the host system. The LLM must strictly sanitize or escape any user-provided input before incorporating it into a shell command. It's recommended to use a dedicated API for file operations that handles paths securely, rather than constructing shell commands with user input. If shell execution is unavoidable, ensure robust input validation and escaping for all arguments. | Static | SKILL.md:64 | |
| HIGH | Path Traversal Vulnerability in File Operations The skill instructs the LLM to write temporary and final document files to a user-specified folder (Step 1: 'Ask where to save'). If the user provides a path containing directory traversal sequences (e.g., `../../../../tmp`), the LLM might write files outside the intended directory. While the `report-to-docx.mjs` script uses `path.resolve` which helps normalize paths, the initial construction of `<full-path-to-temp.md>` by the LLM, and subsequent file operations like 'Rename' and 'delete', could still be vulnerable if not handled carefully by the LLM's underlying file system access methods. This could lead to overwriting or creating files in arbitrary locations on the file system. Ensure that the LLM strictly validates and sanitizes user-provided folder names to prevent path traversal. Restrict file operations to a designated, isolated directory for the skill's output. Use file system APIs that explicitly prevent path traversal or operate within a confined sandbox. | Static | SKILL.md:62 | |
| MEDIUM | Unpinned npm dependency version Dependency 'docx' is not pinned to an exact version ('^9.6.1'). Pin dependencies to exact versions to reduce drift and supply-chain risk. | Dependencies | exchek-export-docs/scripts/package.json | |
| 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 | exchek-export-docs/scripts/package.json | |
| LOW | Unpinned Dependency in package.json The `scripts/package.json` file specifies the `docx` dependency with a caret (`^`) prefix (`"docx": "^9.6.1"`). This allows for automatic updates to minor and patch versions. While convenient, this introduces a supply chain risk as a future, potentially vulnerable or malicious, version of the `docx` library could be installed without explicit review. Pinning dependencies to exact versions (e.g., `"docx": "9.6.1"`) provides greater control and reduces the risk of unexpected changes. Pin the `docx` dependency to an exact version (e.g., `"docx": "9.6.1"`) to ensure deterministic builds and prevent unintended updates that could introduce vulnerabilities. Regularly review and manually update dependencies to vetted versions. | Static | scripts/package.json:9 |
Scan History
Embed Code
[](https://skillshield.io/report/9060f37ba4bed8a3)
Powered by SkillShield