T08 · Insecure Dependencies
- Location
SKILL.md:156- Finding
Unpinned npm Package Execution Through Mutable Latest Version
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:156-160README.md:12-16README.md:41-45README_CN.md:13-17README_CN.md:41-45
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable Code Snippets:
SKILL.md:156-160:bash ## Installation ```bash npx clawhub@latest install memory-distillertext `README.md:12-16`: ```bash ## Installation ```bash npx clawhub@latest install memory-distillertext `README.md:41-45`: ```bash Install both for maximum effect: ```bash npx clawhub@latest install proactive-agent npx clawhub@latest install memory-distillertext `README_CN.md:13-17`: ```bash ```bash npx clawhub@latest install memory-distillertext `README_CN.md:41-45`: ```bash ```bash npx clawhub@latest install proactive-agent npx clawhub@latest install memory-distillertext ### Technical Analysis The documented installation procedure invokes `npx` with the mutable `@latest` version selector. `npx` can download and execute npm packages, including package lifecycle or command-entry scripts, with the permissions of the user running the command. Because `@latest` is not tied to an exact reviewed package version or integrity digest, the effective code executed during installation can change after this Skill has been audited. Neither the downloaded `clawhub` package nor the optional `proactive-agent` package is included in the reviewed project, so their implementation and future releases cannot be verified from the audited files. This creates a supply-chain exposure: compromise of the package publisher, npm account, registry resolution process, or a future release could cause users following the documentation to execute altered code. ### Attack Path 1. An attacker compromises the npm publisher account, publication pipeline, or another component controlling the package selected by the `latest` ...[truncated 1116 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith an exact, reviewed package version, for example:bash npx clawhub@1.2.3 install memory-distiller - Review the selected package release and its transitive dependencies before recommending it.
- Pin dependency integrity using a lockfile, cryptographic digest, trusted artifact mechanism, or registry integrity verification where supported.
- Document the expected npm registry and avoid allowing untrusted registry overrides during installation.
- Apply the same version-pinning and verification controls to the optional
proactive-agentinstallation. - Consider instructing users to download and inspect the package before execution rather than combining retrieval and execution in one command.
- Run installation with the least-privileged account necessary and without unnecessary credentials in the environment.
- Replace
