T08 · Insecure Dependencies
- Location
SKILL.md:59- Finding
Unpinned Third-Party Package Installation Creates Supply-Chain Exposure
- Content
View full analysis
/dev/null || npm install -g @mermaid-js/mermaid-cli ``` Equivalent unpinned installation instructions also appear in `README.md`. ### Technical Analysis The Skill instructs the agent or user to install `python-docx` and `@mermaid-js/mermaid-cli` without version constraints, integrity hashes, or a lockfile. Consequently, the installed code depends on whichever package versions and transitive dependencies the registries serve at installation time. The npm dependency is installed globally and supplies the `mmdc` executable subsequently trusted by `scripts/md_to_docx.py`. Package installation can also execute npm lifecycle scripts. A compromised maintainer account, malicious transitive dependency, registry compromise, or unsafe future release could therefore introduce arbitrary code after the Skill itself has been reviewed. Although the package names do not appear to be typographical imitations, the installation process lacks controls that would make dependency resolution reproducible and verifiable. ### Attack Path 1. An attacker compromises a named package, one of its transitive dependencies, or the relevant registry distribution channel. 2. The attacker publishes a malicious version or modifies a release resolved by the unpinned command. 3. A user or agent follows the Skill instructions and runs the package installation command. 4. Malicious package lifecycle code executes during installation with the installing user's privileges, or a malicious `mmdc` executable is installed globally. 5. A later Markdown conversion invokes the compromised `mmdc` executable, providing another opportunity for arbitrary local code execution. ### Impact Assessment Successful exploitation could ex ...[truncated 492 chars]- Remediation
View remediation
