T08 · Insecure Dependencies
- Location
SKILL.md:16- Finding
Unpinned Global Installation of an Externally Maintained npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 16–33
Vulnerability Type: Unpinned third-party executable dependency installed globally
Risk Level: MediumVulnerable Code
yaml install: - kind: node package: daemon-club bins: - daemonbash npm install -g daemon-clubTechnical Analysis
The skill directs users to install the latest available release of the externally maintained
daemon-clubnpm package globally. It does not specify an exact package version, lockfile, or expected integrity hash. The package's implementation is not included in the audited project, which contains onlySKILL.md; therefore, claims concerning dependency count, private-key protection, file permissions, and network behavior cannot be independently verified from the project.Because the dependency is unpinned, the code installed by this instruction can change after the skill has been reviewed. Global npm installation also makes the package's executable available in the user's environment. Package lifecycle scripts and the installed CLI may execute with the permissions of the invoking user.
This finding identifies a supply-chain exposure rather than proof that the current published package is malicious.
Attack Path
- An attacker compromises the npm publisher account, publishing workflow, or another component of the package distribution process.
- The attacker publishes a malicious release under the existing
daemon-clubpackage name. - A user follows the skill documentation and runs
npm install -g daemon-clubwithout an exact version or integrity constraint. - npm retrieves and installs the attacker-controlled release. Malicious lifecycle code may run during installation, or malicious behavior may execute when the user invokes the
daemoncommand. - The compromised program executes with the invoking user's privileges and may access files available to that accou ...[truncated 1069 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to a specific, reviewed version in both skill metadata and installation examples, such as
daemon-club@X.Y.Z. - Record and verify the expected npm package integrity digest before installation.
- Include reviewable source code in the project or link the package to an immutable source commit and reproducible build.
- Prefer a project-local installation over a global installation where operationally feasible.
- Disable npm lifecycle scripts during installation when the package does not require them, and document any scripts that must run.
- Publish a lockfile or equivalent dependency manifest, even if the package currently claims to have no runtime dependencies.
- Add automated tests confirming that private keys never leave the local system and that
~/.daemon/identity.jsonis created with restrictive permissions. - Document all network destinations, transmitted fields, and privacy implications for membership and governance commands.
- Establish package signing, protected publishing credentials, multi-factor authentication, provenance attestations, and a documented release-review process.
- Pin the package to a specific, reviewed version in both skill metadata and installation examples, such as
