T08 · Insecure Dependencies
- Location
SKILL.md:24- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:24,SKILL.md:29,SKILL.md:178, andSKILL.md:273
Vulnerability Type: Unpinned and mutable third-party dependencies
Risk Level: MediumThe Skill recommends installing or importing third-party npm packages without specifying reviewed versions.
bash npm install webtorrentbash npm install webtorrent-cli -gbash npm install webtorrent-hybridjs import MemoryChunkStore from 'memory-chunk-store'Technical Analysis
The installation commands do not pin exact package versions or require a reviewed lockfile. Consequently, the code installed when the instructions are followed may differ from the code available when the Skill was audited. npm installation can also execute package lifecycle scripts, giving a compromised package an immediate code-execution path.
The global installation of
webtorrent-cliincreases exposure because it installs package-provided executables into the user's environment. Thememory-chunk-storeexample likewise identifies an unpinned dependency, although its installation command is not shown.No evidence was found that the named packages are currently malicious. The vulnerability is the absence of controls that would prevent a compromised or unexpectedly changed upstream release from being installed.
Attack Path
- An attacker compromises an upstream package publisher, npm account, package release, or transitive dependency.
- The attacker publishes a malicious version that satisfies npm's default resolution behavior.
- A user or Agent follows the Skill instructions without an existing reviewed lockfile.
- npm resolves and downloads the attacker-controlled release.
- Malicious package code or lifecycle scripts execute during installation or when the dependency is imported.
- For the global CLI installation, attacker-controlled executables may also become available through the ...[truncated 515 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin each dependency to an exact, reviewed version rather than relying on the latest compatible release.
- Provide and verify a committed lockfile, and recommend
npm ciinstead of unconstrained installation. - Review direct and transitive dependencies with npm provenance information, integrity hashes, and a software composition analysis tool.
- Avoid global package installation where possible. Prefer a project-local dependency invoked through a pinned package script.
- Run installation in a least-privileged, isolated environment without unnecessary secrets.
- Consider disabling lifecycle scripts during initial inspection with
npm ci --ignore-scripts, then explicitly permit only reviewed build steps. - Document the exact required version of
memory-chunk-storeand every optional related package.
