T08 · Insecure Dependencies
- Location
SKILL.md:11- Finding
Unpinned Global Installation of Third-Party Packages
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:11-16, with additional global installation commands atSKILL.md:136-145
Vulnerability Type: Supply-chain exposure through unpinned, globally installed dependencies
Risk Level: HighVulnerable Code
bash ## Prerequisites ```bash npm i -g acpx@latestInstall the target agents you want to use (e.g.,
npm i -g @anthropic-ai/claude-code).text The supported-agent table also directs users to install several packages globally without exact versions: ```markdown | Claude Code | `acpx claude` | `npm i -g @anthropic-ai/claude-code` | | Codex | `acpx codex` | `npm i -g @openai/codex` | | OpenCode | `acpx opencode` | `npm i -g opencode-ai` | | Gemini CLI | `acpx gemini` | `npm i -g @anthropic-ai/gemini-cli` | | GitHub Copilot | `acpx copilot` | `npm i -g @githubnext/github-copilot-cli` | | Qwen Code | `acpx qwen` | `npm i -g @qwen/qwen-code` |Technical Analysis
The prerequisite uses the mutable
latestdistribution tag, while the other installation commands omit versions entirely. Consequently, the code installed by a user may differ from the code that existed when the Skill was reviewed.npm packages can execute lifecycle scripts during installation. If an upstream account, package, release process, or registry response is compromised, following these commands can execute attacker-controlled installation logic. The use of global installation increases exposure because the package is placed in the user's global executable environment rather than being isolated to a locked project dependency tree.
The documentation does not provide exact versions, integrity hashes, lockfiles, publisher-verification steps, or guidance for disabling lifecycle scripts.
Attack Path
- An attacker compromises one of the documented package publishers, its release process, or an accepted dependency.
- The attacker publishes a malicious version u ...[truncated 885 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every dependency to an exact, reviewed version instead of using
@latestor an omitted version. - Record and verify package integrity hashes and distribute a reviewed lockfile where applicable.
- Confirm package names and publishers against their official project documentation.
- Prefer a project-local, isolated installation over
npm i -g. - Run installation and delegated agents inside a sandbox or disposable container with minimal filesystem and network access.
- Consider installing with lifecycle scripts disabled, such as
npm install --ignore-scripts, unless a reviewed package explicitly requires them. - Establish an update process that reviews release provenance, dependency changes, and lifecycle scripts before changing pinned versions.
- Pin every dependency to an exact, reviewed version instead of using
