T08 · Insecure Dependencies
- Location
scripts/install_pack.py:50- Finding
Unpinned CLI and Skill Dependencies Are Installed Without Integrity Verification
- Content
View full analysis
- Remediation
View remediation
clawhub`. - Prefer a preinstalled, managed CLI and use `npx --no-install` where compatible to prevent implicit downloads. - Verify the detected global executable's version against an approved version range. 2. **Pin installed skills** - Define an immutable version for every curated skill. - If the CLI supports it, install using identifiers such as `skill-name@version`. - Maintain reviewed version metadata in the pack definition rather than resolving the latest release automatically. 3. **Verify dependency integrity and identity** - Validate cryptographic hashes or signatures before activating downloaded content. - Check the expected publisher, package source, and registry for every curated skill. - Fail closed when verification metadata is missing or does not match. 4. **Restrict arbitrary extra skills** - Reject extra skill names by default or validate them against a configurable allowlist. - If arbitrary extras are required, display the resolved publisher, source, version, and permissions, then obtain explicit user confirmation before installation. - Validate identifiers against the exact syntax accepted by the registry to reduce package-name deception. 5. **Separate download, review, and activation** - Download dependencies into a staging directory. - Inspect their manifests, scripts, requested capabilities, and hashes before installation. - Require approval before moving staged content into the active OpenClaw skill directory. 6. **Document the trust boundary** - Clearly warn users that installed skills are third-party content that may contain executable code or agent instructions. - Do not instruct users to restart and activate newly installed content until its source and integrity have been verified. ]]>
