T03 · Remote Payload Retrieval and Execution
- Location
references/INSTALL.md:9- Finding
Unpinned External Repository Is Downloaded and Executed
- Content
View full analysis
Vulnerability Details
File Location:
references/INSTALL.md:9-16;references/OPENCLAW_MCP_CONFIG.json:1-10;references/OPENHANDS_MCP_CONFIG.json:1-8
Vulnerability Type: Remote payload retrieval and execution through an unpinned external repository
Risk Level: MediumVulnerable Code
references/INSTALL.md:9-16:bash git clone https://github.com/xiaojiou176-open/sourceharbor.git cd sourceharborbash ./bin/dev-mcpreferences/OPENCLAW_MCP_CONFIG.json:1-10:json { "mcp": { "servers": { "sourceharbor": { "command": "./bin/dev-mcp", "cwd": "/ABSOLUTE/PATH/TO/sourceharbor" } } } }references/OPENHANDS_MCP_CONFIG.json:1-8:json { "mcpServers": { "sourceharbor": { "command": "./bin/dev-mcp", "cwd": "/ABSOLUTE/PATH/TO/sourceharbor" } } }Technical Analysis
The installation procedure clones the mutable default branch of an external GitHub repository and then executes its
./bin/dev-mcplauncher. No immutable commit hash, signed release, checksum, or integrity verification is specified.The executed program is not included in the audited Skill package. Consequently, its effective behavior cannot be established from this package, and it may change after the Skill has been reviewed. Compromise of the upstream repository, maintainer account, release process, or Git hosting path could replace the launcher or one of its transitive components.
The MCP configuration makes this execution persistent at the configuration level: whenever the host starts the configured SourceHarbor server, it invokes the external repository’s launcher.
Attack Path
- An attacker compromises the upstream repository or an authorized maintainer account.
- The attacker modifies the default branch,
./bin/dev-mcp, or code loaded by that launcher. - A user follows the documented ...[truncated 907 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the repository to a reviewed, immutable commit hash rather than cloning and running the default branch.
- Prefer a signed release artifact and verify its cryptographic signature or published SHA-256 digest before execution.
- Record the expected repository revision and artifact digest in
INSTALL.md. - Audit and vendor the minimal MCP launcher and required dependencies into a controlled release where feasible.
- Configure automated dependency monitoring, but require review before advancing the pinned revision.
- Run the MCP server in a sandbox or container with a minimal environment, read-only filesystem access where possible, restricted network access, and no unnecessary credentials.
- Avoid forwarding the host agent’s complete environment to the MCP process.
