T08 · Insecure Dependencies
Error
- Location
- SKILL.md:30
- Finding
- Unpinned Third-Party Plugin Handles Dropbox Credentials and File Operations<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 30–34 **Vulnerability Type**: Unpinned privileged third-party dependency **Risk Level**: High ### Vulnerable Code ```markdown **Step 1** — Install the ClawLink plugin: ``` openclaw plugins install clawhub:clawlink-plugin ``` Start a fresh chat after installing. ``` ### Technical Analysis The Skill directs users to install `clawhub:clawlink-plugin` without specifying an audited version, immutable source revision, or cryptographic digest. Consequently, the installed executable code may differ from the version that was originally reviewed. This dependency occupies a sensitive trust position. According to `SKILL.md`, ClawLink conducts the hosted OAuth flow, stores the OAuth token, maintains connection state, and routes Dropbox operations. The plugin can therefore process device credentials, Dropbox API traffic, file contents, account metadata, shared links, and destructive operation requests. The repository contains only `SKILL.md`; it does not contain the plugin implementation or an integrity manifest. The plugin's actual behavior therefore cannot be verified from the audited artifact. This does not establish that the dependency is malicious, but it creates a supply-chain risk if the publisher, package registry, release pipeline, or mutable package version is compromised. The third-party network mediation is relevant to the Skill's declared Dropbox functionality and is disclosed rather than covert. The security defect is the absence of dependency pinning and integrity controls around a component with privileged access. ### Attack Path 1. An attacker compromises the plugin publisher account, package registry entry, release pipeline, or another mutable source used to resolve `clawhub:clawlink-plugin`. 2. The attacker publishes a modified release under the same unversioned package identifier. 3. A user follows the documented installation command and receives the compromised release. 4. ...[truncated 1506 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the plugin to a specific audited version rather than using a mutable package identifier. 2. Pin and verify a cryptographic digest or signed provenance record so the installed artifact is immutable and independently verifiable. 3. Publish the plugin's source repository, release commit, build instructions, and integrity metadata in the Skill documentation. 4. Require signature verification before installation and reject unsigned or mismatched releases. 5. Use Dropbox OAuth scopes limited to the operations explicitly requested by the user. Avoid requesting destructive, sharing, contact, or full-account permissions unless required. 6. Separate read-only functionality from write and destructive functionality so users can authorize the minimum necessary privilege set. 7. Require explicit, operation-specific confirmation before uploads, public-link creation, sharing changes, membership changes, deletion, or other irreversible actions. 8. Protect OAuth tokens and device credentials using OS-backed secret storage, restrict filesystem permissions, redact secrets from logs, and define token rotation and revocation procedures. 9. Document ClawLink's data routing, retention, subprocessors, and security boundary so users can make an informed decision before transmitting Dropbox content through the intermediary. 10. Add dependency monitoring and a documented incident-response process that can revoke compromised releases and associated Dropbox tokens promptly. ]]>
