T08 · Insecure Dependencies
Error
- Location
- SKILL.md:63
- Finding
- Execution of an Unpinned Mutable npm Package## Vulnerability Details **File Location**: `SKILL.md:63-66`; `references/commands.md:23-27,49` **Vulnerability Type**: Supply-chain exposure through mutable third-party package execution **Risk Level**: High ### Vulnerable Code `SKILL.md:63-66`: ```markdown ## Install 1. If `ascli` is already on `PATH`, use it. 2. Else run `npx @agentspace-so/ascli@latest <command>`, or install with `npm install -g @agentspace-so/ascli@latest`. 3. If Node.js is not available, tell the user to install it from nodejs.org first. ``` `references/commands.md:23-27`: ```markdown ## Without installing globally ```bash npx @agentspace-so/ascli@latest share <path> --permission edit ``` ``` `references/commands.md:49`: ```markdown - Install via `npm install -g @agentspace-so/ascli@latest` if `ascli` is not already on `PATH`. Do not use `curl | bash`. ``` ### Technical Analysis The Skill directs the agent to download and execute the mutable `latest` release of a third-party npm package. The reviewed Skill contains neither the CLI source nor a lockfile or integrity hash that establishes which package contents will execute. Running the package through `npx` may download and immediately execute package code, including lifecycle behavior and the requested CLI entry point. A global installation also places mutable third-party software into the user's global Node.js environment. Consequently, the effective executable payload can change after this Skill has been reviewed. This is not evidence that the current npm package is malicious. It is an unsafe trust model: compromise of the npm publisher account, package distribution infrastructure, or a future release could turn an otherwise legitimate command into arbitrary local code execution. The pre-scan warning concerning `curl | bash` is a false positive. The cited line explicitly says **not** to use that installation mechanism. The actual concern is the unpinned npm p ...[truncated 1345 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `@latest` with an exact, reviewed package version. 2. Prefer a project-local dependency recorded in a lockfile over global installation. 3. Verify npm package integrity using lockfile integrity metadata or a separately published trusted checksum. 4. Require explicit user approval before downloading or executing a package that is not already installed. 5. Document the exact package version tested with the Skill and review upgrades before changing that version. 6. Run the CLI with the minimum filesystem and network access required for the selected folder. 7. Consider distributing audited CLI source with reproducible build instructions or using a verified signed release.
