T08 · Insecure Dependencies
- Location
SKILL.md:69- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 69–77
Vulnerability Type: Unpinned and globally installed third-party dependency
Risk Level: MediumVulnerable Code
markdown This is focused on linux. Ensure you have node installed. Follow the installation instructions, e.g.sudo apt install -y libsecret-1-dev npm install -g soulseek-cli
text Technical Analysis
The Skill instructs users to install
soulseek-cliglobally from the npm registry without specifying a reviewed version, lockfile, integrity hash, or provenance-verification procedure. Consequently, the effective dependency contents may change after this Skill has been audited.npm packages can define lifecycle scripts that execute during installation. If the upstream package, maintainer account, or distribution channel is compromised, following this instruction could execute attacker-controlled code with the privileges of the account invoking npm. Global installation also exposes the host-wide npm prefix and installs or replaces a command available outside an isolated project environment.
The adjacent
sudo apt installcommand independently requests administrative privileges. Although the shown npm command does not usesudo, users may execute the installation from a privileged shell or change it to usesudowhen their global npm prefix is not writable, increasing the potential impact.Attack Path
- An attacker compromises the upstream npm package, a maintainer account, or its release process.
- The attacker publishes a malicious version of
soulseek-cli, potentially containing an npm lifecycle script. - A user follows the unpinned
npm install -g soulseek-cliinstruction. - npm resolves the mutable package reference to the compromised release.
- Malicious lifecycle code executes under the invoking account and can access that account's files, network connectivity, environment, and writable npm insta ...[truncated 771 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
soulseek-clito an explicitly reviewed version rather than resolving the latest release:sh npm install --save-exact soulseek-cli@<reviewed-version> - Prefer a project-local installation with a committed lockfile over
npm install -g. - Verify npm provenance, publisher identity, package integrity, repository ownership, and release artifacts before installation.
- Review package contents and lifecycle scripts. Where compatible, initially install with lifecycle scripts disabled:
sh npm install --ignore-scripts --save-exact soulseek-cli@<reviewed-version> - Run the client in a restricted container, virtual machine, or dedicated unprivileged account with minimal filesystem and network access.
- Do not run npm as root or add
sudoto the npm command. Configure a user-owned local npm prefix if necessary. - Document a trusted version, expected integrity value, update-review process, and rollback procedure directly in the Skill.
- Verify downloaded Soulseek installers using publisher signatures or trusted checksums before execution.
- Pin
