T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:10
- Finding
- Unpinned Third-Party Plugin and Hosted OAuth Proxy Create an Unverifiable Supply-Chain Trust Boundary< for hosted connection flows and credentials so you do not need to configure Mailchimp API access yourself. ``` ```bash openclaw plugins install clawhub:clawlink-plugin openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json openclaw gateway restart ``` ```markdown ### Getting Connected 1. Install the ClawLink plugin (see Install above). 2. Pair the plugin with `clawlink_begin_pairing` if it is not configured yet. 3. Open https://claw-link.dev/dashboard?add=mailchimp and connect Mailchimp (requires an active Mailchimp account). 4. Call `clawlink_list_integrations` to verify the connection is active. ``` ```markdown All Mailchimp tool calls are authenticated automatically by ClawLink using the user's connected Mailchimp account. **No API key is required in chat.** ClawLink stores the OAuth token securely and injects it into every Mailchimp API request on the user's behalf. ``` ### Technical Analysis The Skill instructs users to install `clawhub:clawlink-plugin` without specifying an immutable version, cryptographic digest, signature requirement, or other verifiable release identity. It then adds the plugin to OpenClaw's allowed tools and restarts the gateway. The Skill also delegates Mailchimp OAuth-token custody and API request proxying to the external ClawLink service. Because the audited project contains only `SKILL.md`, the plugin implementation and hosted service are not available for review. Consequently, the audit cannot verify: - The exact plugin artifact that will be installed. - Whether future installations resolve to the same reviewed implementation. - How OAuth tokens are ...[truncated 2568 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. **Pin the dependency** - Require an immutable plugin version rather than an unqualified package name. - Pin the expected artifact using a cryptographic digest where the package manager supports it. - Prevent automatic updates from replacing the reviewed artifact without renewed approval. 2. **Verify release provenance** - Publish the plugin source corresponding to each release. - Sign release artifacts and verify signatures during installation. - Provide reproducible-build metadata, a software bill of materials, and a documented release process. - Restrict publishing privileges and protect release accounts with strong multi-factor authentication. 3. **Apply least-privilege OAuth controls** - Document every Mailchimp OAuth scope requested and why it is necessary. - Request only the scopes needed for the operation selected by the user. - Where supported, separate read-only authorization from campaign sending, exports, webhook management, and destructive administration. - Clearly display the account and granted scopes before authorization. 4. **Harden credential custody** - Prefer local or user-controlled token storage when feasible. - If hosted custody remains necessary, document encryption at rest and in transit, key management, access logging, retention periods, tenant isolation, and breach-response procedures. - Provide immediate token revocation, connection deletion, and session invalidation controls. - Never include OAuth tokens or sensitive subscriber data in logs or error messages. 5. **Strengthen authorization and confirmation** - Require explicit user approval before plugin installation, allow-list modification, gateway restart, account pairing, and OAuth authorization. - Bind confirmations to the exact integration, Mailchimp account, operation, target resources, and request parameters. - Require fresh confirmation for exports, campaign sends, webhook creation, ...[truncated 529 chars]
