T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:16
- Finding
- Unpinned Executable npm Dependency Creates a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:16-22` and `SKILL.md:68-81` **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml requires: tools: - node>=18 - npm packages: - name: openclaw-decentralized-agent-cloud source: npm version: ">=0.1.0" verified_repo: https://github.com/openclaw/openclaw-decentralized-agent-cloud ``` The installation instructions also resolve the package without specifying an exact version: ```bash # Via npm npm install openclaw-decentralized-agent-cloud # Via ClawHub clawhub install decentralized-agent-cloud ``` ### Technical Analysis The dependency constraint `>=0.1.0` accepts every subsequent compatible or incompatible release selected by the package resolver. The direct npm command similarly installs the registry's current default release rather than a previously audited artifact. An npm package can contain executable runtime code and npm lifecycle scripts. Consequently, package installation may execute code with the permissions of the user running npm. The `verified_repo` value identifies an expected source repository but does not cryptographically bind the installed registry artifact to a reviewed commit, exact version, or integrity digest. The audited project contains only `SKILL.md`; it does not include the dependency implementation, a lockfile, or an integrity hash. The actual behavior of the package and its installation scripts therefore could not be verified from this artifact. This finding establishes an unsafe dependency-resolution practice, not evidence that the currently published package is malicious. ### Attack Path 1. An attacker compromises the npm publisher account, build pipeline, source repository, or another component involved in publishing `openclaw-decentralized-agent-cloud`. 2. The attacker publishes a new package release satisfying `>=0.1.0` or changes the release selected by the unver ...[truncated 1151 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace the open-ended dependency range with an exact, reviewed version, for example: ```yaml version: "0.1.0" ``` 2. Update the npm installation example to request that exact version: ```bash npm install --save-exact openclaw-decentralized-agent-cloud@0.1.0 ``` 3. Commit and enforce a lockfile containing registry integrity metadata. Use deterministic installation commands such as `npm ci` in automated environments. 4. Verify the package tarball's integrity and provenance against an approved digest and trusted release process rather than relying only on the repository URL. 5. Review dependency lifecycle scripts before approval. Where functionality permits, install with `--ignore-scripts` and explicitly run only required, reviewed setup steps. 6. Perform dependency updates through a controlled review process that checks source changes, published tarball contents, maintainers, provenance attestations, and transitive dependencies. 7. Install and run the package in a least-privileged, isolated environment without unnecessary secrets, host filesystem access, or privileged container permissions. ]]>
