T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:47
- Finding
- Unpinned Third-Party Plugin Is Installed and Granted Tool Access<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 47–49 **Vulnerability Type**: Unpinned and externally hosted dependency **Risk Level**: Medium ### Vulnerable Code ```bash openclaw plugins install clawhub:clawlink-plugin openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json openclaw gateway restart ``` ### Technical Analysis The skill instructs users to install `clawlink-plugin` from ClawHub without specifying an immutable version, package digest, or verified signature. It then adds the plugin to OpenClaw's tool allowlist and restarts the gateway, causing the downloaded component to be loaded. The repository contains only `SKILL.md`; it does not include the plugin source code, a dependency lock file, a cryptographic checksum, or other material that would allow the installed implementation to be compared with a reviewed version. Consequently, the effective behavior may change independently of this skill after review. This creates a supply-chain weakness: compromise of the package, publisher account, registry, or mutable package release could cause users to install behavior different from what was originally assessed. The risk is amplified because the plugin is deliberately allowlisted and acts as an intermediary for Apollo data and authenticated requests. The documentation states that ClawLink stores and injects the Apollo API key, although the artifact provides no evidence that the current plugin steals credentials or performs undisclosed data exfiltration. ### Attack Path 1. An attacker compromises the ClawHub package, its publisher account, its distribution channel, or another mutable release mechanism associated with `clawlink-plugin`. 2. The attacker publishes a modified plugin under the same unversioned package identifier. 3. A user follows the installation instructions and receives the compromised release because no immutable version or digest is required. 4. The configuration command adds the plugin to `t ...[truncated 1031 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the plugin to an immutable, security-reviewed version rather than installing an unresolved latest release. 2. Verify the package with a cryptographic digest or trusted publisher signature before installation. 3. Publish or link to the exact source revision corresponding to the pinned release so its behavior can be independently audited. 4. Document the minimum permissions required by the plugin and grant only those permissions instead of broadly allowlisting capabilities. 5. Require explicit user approval after presenting the plugin version, publisher identity, integrity information, and requested permissions. 6. Maintain a reviewed version allowlist and reject installation if the downloaded package does not match the approved digest. 7. Define an update process that requires renewed security review rather than silently accepting mutable package updates. 8. Document credential storage, encryption, retention, revocation, and request-proxying controls for the ClawLink trust boundary. ]]>
