T08 · Insecure Dependencies
Warning
- Location
- install.sh:145
- Finding
- Unpinned Third-Party Skills Installed from a Remote Registry<![CDATA[ ## Vulnerability Details **File Location**: `install.sh:25-26`, `install.sh:145`, and `README.md:140-144` **Vulnerability Type**: Unverified and unpinned third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash # All third-party Skills are selected by default. declare -a SELECTED=(true true true true true) ``` ```bash if clawhub install "$name"; then echo -e " ${GREEN}✓${NC} Installation succeeded" else echo -e " ${RED}✗${NC} Installation failed; skipping" fi ``` The README also directs users to install the packages without version constraints: ```bash clawhub install token-estimator clawhub install smart-router clawhub install command-flow clawhub install skill-dashboard clawhub install token-water-meter ``` ### Technical Analysis The installer retrieves five third-party Skills through the `clawhub` registry without specifying immutable versions, cryptographic digests, trusted publisher identities, or other integrity constraints. The source and behavior of those dependencies are not included in this project and therefore could not be audited as part of the reviewed artifact. Because installation resolves the package names to whatever releases the registry currently serves, the effective installed content can change after this project has been reviewed. Selecting every dependency by default also increases the likelihood that users will install all remote components without individually evaluating them. No evidence establishes that the named packages are currently malicious. The vulnerability is the absence of controls that would prevent a future compromised release, publisher account, or registry response from being trusted automatically. The documentation and installer also claim that operation is local and has no cloud dependency, although `clawhub install` requires interaction with an external package registry. This may prevent users from making a fully informed trust decision. ### Attack Path 1. An attack ...[truncated 1248 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every dependency to a reviewed immutable version rather than resolving only by package name. 2. Where supported, lock dependencies using cryptographic digests or signed release identifiers. 3. Verify package signatures, publisher identities, and checksums before installation. 4. Maintain a lock file or manifest containing each approved package name, version, publisher, and digest. 5. Default every package selection to disabled so users must explicitly opt into each third-party component. 6. Display the resolved version, publisher, source registry, requested capabilities, and integrity status before requesting confirmation. 7. Abort installation when signature or digest verification fails instead of silently continuing. 8. Periodically re-audit dependency updates before changing pinned versions. 9. Update the security statements to disclose that installation contacts the ClawHub registry and that installed Skills have independent security and privacy characteristics. ]]>
