T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned npm Package Is Installed Globally
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 5-14 and 23-27
Vulnerability Type: Unpinned global third-party dependency
Risk Level: MediumVulnerable Code
yaml metadata: clawdbot: requires: bins: ["clawflows"] install: - id: node kind: node package: clawflows bins: ["clawflows"] label: "Install ClawFlows CLI (npm)"bash npm i -g clawflowsTechnical Analysis
The Skill declares and recommends installation of the
clawflowsnpm package without specifying an exact version or package integrity value. Consequently, installation resolves to whatever package release is current in the npm registry at execution time. The reviewed Skill therefore does not define an immutable dependency corresponding to the version that was originally assessed.The use of
-gincreases the affected scope because the package is installed into the user's global Node.js environment. npm packages may also contain lifecycle scripts that run during installation. If the package, maintainer account, release process, or npm distribution channel is compromised, a malicious release could execute code with the permissions of the user performing the installation.No evidence establishes that the current package is malicious. The vulnerability is the mutable and unverified supply-chain trust boundary.
Attack Path
- An attacker compromises the npm package, a maintainer account, or its release pipeline.
- The attacker publishes a malicious version under the existing
clawflowspackage name. - A user follows the Skill instructions and runs
npm i -g clawflows, or the Skill framework processes the unpinned installation metadata. - npm retrieves the attacker-controlled current release.
- Malicious package code or lifecycle scripts execute with the installing user's privileges.
- The globally installed executable remains available ...[truncated 632 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a specifically audited version in both installation metadata and documentation, such as
clawflows@1.0.0. - Use a lockfile or equivalent mechanism containing verified package integrity hashes.
- Prefer a project-local installation over
npm i -gto limit the package's reach and prevent global command replacement. - Verify package provenance through signed releases, npm provenance attestations, and a controlled publication process.
- Audit all transitive dependencies and npm lifecycle scripts before approving a release.
- Where operationally possible, install with lifecycle scripts disabled and explicitly execute only reviewed setup steps.
- Avoid elevated installation privileges and document that the package must not be installed with
sudoor an administrator account.
- Pin the CLI to a specifically audited version in both installation metadata and documentation, such as
