T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:5
- Finding
- Unpinned Global Installation of a Third-Party npm Package## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Unpinned third-party dependency installed globally **Risk Level**: Medium **Vulnerable 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 `beepctl` without 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 1. An attacker compromises the npm publisher account, package distribution process, or another component of the package's release chain. 2. The attacker publishes a malicious version under the expected `beepctl` package name. 3. A user or agent installs the skill dependency without an exact version constraint. 4. npm resolves and installs the attacker-controlled release globally. 5. Malicious lifecycle code, if present and permitted by npm configuration, executes during installation, or the installed `beepctl` executable runs attacker-controlled logic when invoked. 6. Subsequent legitimate-looking skill operations execute the co ...[truncated 618 chars]
- Remediation
- ## Remediation Suggestions - Pin `beepctl` to 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.
