T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 5
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable Code Snippet:
yaml metadata: {"clawdbot":{"emoji":"🐝","requires":{"bins":["beepctl"]},"install":[{"id":"npm","kind":"npm","package":"beepctl","global":true,"bins":["beepctl"],"label":"Install beepctl (npm)"}]}}Technical Analysis
The installation configuration references
beepctlwithout an exact version or integrity constraint and requests a global npm installation. Consequently, installation can resolve to whichever package version is current at that time rather than a release reviewed with this skill.The dependency implementation and any npm lifecycle scripts are not included in the audited project. Their installation-time and runtime behavior therefore cannot be verified from this artifact. If the npm package, publisher account, or a future release is compromised, package-controlled lifecycle scripts may execute during installation. A global installation also exposes the resulting executable broadly through the user's command environment.
This finding identifies an unsafe supply-chain configuration; the reviewed artifact does not itself establish that the current npm package is malicious.
Attack Path
- An attacker compromises the npm publisher account, package distribution process, or another component of the package's release chain.
- The attacker publishes a malicious version under the expected
beepctlpackage name. - A user or agent installs the skill dependency without an exact version constraint.
- npm resolves and installs the attacker-controlled release globally.
- Malicious lifecycle code, if present and permitted by npm configuration, executes during installation, or the installed
beepctlexecutable runs attacker-controlled logic when invoked. - Subsequent legitimate-looking skill operations execute the co ...[truncated 618 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
beepctlto a specific, reviewed version rather than resolving the latest available release. - Enforce package integrity using a lockfile and verified registry integrity hashes where the skill installation framework supports them.
- Prefer a project-local installation over a global installation to reduce exposure and simplify dependency isolation.
- Review the package's source, release provenance, maintainers, transitive dependencies, and lifecycle scripts before approving it.
- Disable npm lifecycle scripts during installation where compatible with the package.
- Execute the CLI under a least-privileged account or sandbox with access limited to the resources required for Beeper operations.
- Establish an update process that requires security review before changing the pinned package version.
- Pin
