T08 · Insecure Dependencies
- Location
modules/validation-protocols.md:27- Finding
Unpinned npm Packages Are Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
modules/validation-protocols.md:27-29, 57-58, 95, 100;modules/red-flags.md:16
Vulnerability Type: Supply-chain exposure through mutable and unpinned npm packages
Risk Level: MediumVulnerable Code
From
modules/validation-protocols.md:bash CCLSP_CONFIG_PATH=./config.json npx cclsp@latest & sleep 2 ps aux | grep cclspbash npm install -g cclsp echo $? # Must be 0bash npx cclsp@latest --helpbash CCLSP_CONFIG_PATH=config.json npx cclsp@latest &From
modules/red-flags.md:bash CCLSP_CONFIG_PATH=config.json npx cclsp@latestTechnical Analysis
The validation instructions encourage agents to use
npx cclsp@latest, which resolves and executes a mutable package release at runtime. Consequently, the code that executes is not fixed to the version reviewed with this Skill. The global installation example,npm install -g cclsp, is also unversioned and modifies the host environment.No lockfile, exact version, package-integrity hash, trusted publisher verification, or isolated execution environment is specified. npm package binaries and installation lifecycle scripts may execute with the invoking user's privileges. A compromised package, publisher account, registry response, or unexpectedly changed release could therefore introduce code absent from the audited project.
Other unpinned tool invocations in the same document, such as
npx tsc, carry a similar dependency-resolution concern if the package is not already installed from a trusted, locked dependency tree.Attack Path
- An agent follows the Skill's validation protocol.
- It runs
npx cclsp@latestor installs the unversioned package globally. - npm resolves the package from the external registry at execution time.
- A compromised or malicious current release supplies installation scripts or a package binary.
- npm or
npxexecutes that code with the agent user's permissions. - The pay ...[truncated 777 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestand unversioned installations with an exact, reviewed version:bash npm install --save-exact cclsp@X.Y.Z - Commit and enforce a lockfile, and use
npm cirather than unconstrained installation. - Verify registry package ownership, provenance, and integrity before use.
- Avoid global installation. Install dependencies in an isolated temporary project, container, or restricted development environment.
- Prefer execution from an already locked local dependency tree:
bash npx --no-install cclsp --help - Pin all other
npxtools to reviewed local dependencies rather than permitting implicit registry downloads. - Run third-party package code with minimum privileges, restricted credentials, limited network access, and no sensitive environment variables.
- Replace
