Back to skill

Security audit

Dropbox

Security checks for vulnerabilities and agentic risk

Overview

This Dropbox skill is coherent and not overtly malicious, but it asks users to install an unpinned third-party integration that can route credentials and perform high-impact Dropbox actions like deletion and public sharing.

Review ClawLink's publisher, privacy terms, token storage, and revocation controls before installing. Use the narrowest Dropbox permissions available, avoid highly sensitive folders unless approved by your organization, and require explicit confirmation before uploads, public link creation, sharing changes, member removals, contact deletion, or permanent deletes.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

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. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

Credential Access

High
Category
Privilege Escalation
Content
| Tool | Description | Risk |
|------|-------------|------|
| `dropbox_check_user` | Test API connection and validate access token | safe |
| `dropbox_get_about_me` | Get current user's account info (email, name, type) | safe |
| `dropbox_get_account` | Get account info by account ID | safe |
| `dropbox_get_account_batch` | Get multiple accounts at once (max 300) | safe |
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Context Leakage

High
Category
Data Exfiltration
Content
| Tool | Description | Risk |
|------|-------------|------|
| `dropbox_alpha_upload_file` | Upload file up to 150 MiB (alpha endpoint) | confirm |
| `dropbox_append_upload_session` | Append data to upload session (max 150 MiB/request) | confirm |
| `dropbox_append_upload_session_batch` | Append to multiple upload sessions at once | confirm |
| `dropbox_finish_upload_session` | Finish upload session and save to path | confirm |
| `dropbox_finish_upload_session_batch` | Finish multiple upload sessions at once | confirm |
Confidence
85% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Context Leakage

High
Category
Data Exfiltration
Content
| Tool | Description | Risk |
|------|-------------|------|
| `dropbox_alpha_upload_file` | Upload file up to 150 MiB (alpha endpoint) | confirm |
| `dropbox_append_upload_session` | Append data to upload session (max 150 MiB/request) | confirm |
| `dropbox_append_upload_session_batch` | Append to multiple upload sessions at once | confirm |
| `dropbox_finish_upload_session` | Finish upload session and save to path | confirm |
| `dropbox_finish_upload_session_batch` | Finish multiple upload sessions at once | confirm |
Confidence
85% confidence
Finding
Code or instructions that leak agent conversation context to external services, potentially exposing sensitive user interactions.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill explains that ClawLink brokers access to Dropbox but does not clearly warn that file contents, metadata, account information, and possibly shared-link targets are transmitted through a third-party service. That missing disclosure can mislead users about the privacy boundary and cause them to share sensitive data without informed consent.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill documents destructive and sharing-capable Dropbox actions such as delete, revoke, remove-member, and public link creation, but it does not pair them with an explicit warning about irreversible deletion, access removal, or unintended public exposure. In a chat-driven tool environment, that omission raises the chance of users invoking high-impact operations without understanding the consequences.

Static analysis

No suspicious patterns detected.