T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:48
- Finding
- Unverified MCP Server and Plugin Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 48–59 **Vulnerability Type**: Untrusted third-party component installation **Risk Level**: Medium ### Evidence ```bash ### MCP Servers ```bash droid mcp list # List installed MCP servers droid mcp add server-name # Add MCP server droid mcp remove server-name # Remove MCP server ``` ### Plugins ```bash droid plugin list # List plugins droid plugin add name # Add plugin ``` ``` ### Technical Analysis The skill recommends adding MCP servers and plugins using arbitrary names, but it does not define trusted registries, approved components, pinned versions, integrity checks, or signature-verification requirements. Plugins and MCP servers extend the capabilities of the external `droid` CLI. Depending on the component and its granted capabilities, an untrusted or compromised component could process project content, communicate with external services, invoke tools, or perform actions under the CLI user's account. Component resolution based only on an uncontrolled name also creates supply-chain risks such as typosquatting and dependency confusion. ### Attack Path 1. An attacker publishes, compromises, or recommends a malicious plugin or MCP server. 2. The attacker supplies a deceptive or typosquatted component name to the user or agent. 3. Following the documented workflow, the user or agent runs `droid plugin add name` or `droid mcp add server-name`. 4. The CLI installs or registers the component without the skill requiring provenance or integrity validation. 5. When invoked, the component operates with the capabilities and data access granted through the CLI. ### Impact Assessment The attainable privileges depend on the external CLI's component model and user configuration. Potential exposure includes source code, repository metadata, environment data available to the CLI, and credenti ...[truncated 278 chars]
- Remediation
- ## Remediation Suggestions - Replace arbitrary component names with an explicit allowlist of reviewed MCP servers and plugins. - Pin every component to an approved immutable version or cryptographic digest. - Require signature, checksum, publisher, and registry verification before installation. - Require explicit human approval before adding or updating any external component. - Document the permissions, network destinations, and data-access requirements of each approved component. - Run third-party components in a sandbox with minimal filesystem, environment-variable, tool, and network access. - Periodically audit installed components and remove unused or unmaintained integrations.
