T08 · Insecure Dependencies
- Location
SKILL.md:29- Finding
Unverifiable Third-Party Plugin Installation and Credential Delegation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 29–41
Vulnerability Type: Third-party supply-chain and credential-broker risk
Risk Level: Mediumtext **Step 1** — Install the ClawLink plugin:openclaw plugins install clawhub:clawlink-plugin
text Start a fresh chat after installing. **Step 2** — Pair ClawLink: 1. Call `clawlink_begin_pairing` 2. Open the returned URL in your browser 3. Sign in to ClawLink and approve the device **Step 3** — Connect Discord: Open [claw-link.dev/dashboard?add=discord](https://claw-link.dev/dashboard?add=discord), complete the OAuth flow, then confirm.Technical Analysis
The Skill instructs users to install and execute the externally distributed
clawlink-plugin. The plugin's source, immutable version, checksum, and implementation are not included in the audited project, whose only file isSKILL.md. Consequently, the executable behavior of the dependency cannot be verified from this artifact.The workflow also delegates Discord OAuth credential handling and API routing to the ClawLink hosted service. Although this architecture is disclosed rather than hidden, it creates a supply-chain and trust-boundary risk: the installed package or hosted service can change independently after this Skill has been reviewed. A compromised package release, distribution account, pairing endpoint, or cloud service could abuse the Discord permissions granted by the user.
The reviewed file does not contain evidence that the plugin is malicious. The issue is the unauditable executable dependency and external credential delegation without an immutable version, integrity verification, or locally reviewable implementation.
Attack Path
- A user follows the instructions in
SKILL.mdand installsclawhub:clawlink-plugin. - The plugin executes inside OpenClaw despite its implementation not being present in the reviewed Skill.
- The user invokes `clawlink_beg ...[truncated 1191 chars]
- A user follows the instructions in
- Remediation
View remediation
Remediation Suggestions
- Pin the plugin to a specific immutable version rather than installing an unversioned package.
- Publish and verify a cryptographic checksum or signed provenance record for each approved release.
- Make the plugin source available for review and provide reproducible builds that can be matched to the distributed artifact.
- Verify pairing URLs against a strict HTTPS origin allowlist before presenting or opening them. Reject redirects to unapproved domains.
- Request only the minimum Discord OAuth scopes required for the operation being performed.
- Display the requested scopes and resulting privileges clearly before the user approves authorization.
- Require explicit, operation-specific confirmation before every mutating or destructive Discord action.
- Use short-lived, revocable credentials and provide clear instructions for revoking both ClawLink device access and Discord OAuth authorization.
- Document the plugin's update policy, credential storage protections, incident-response process, and security contact.
- Subject both the plugin and hosted credential-routing service to independent security review before they are trusted with production Discord accounts.
