T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:77- Finding
Unverified Remote Payload Retrieval and Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its CartoGopher setup purpose, but it asks users to run unverified downloaded code, persist an API key in plaintext, and modify a system identity file.
Review before installing. Only run this in a workspace and account where you are comfortable installing vendor-provided code, avoid running the setup as root, do not let it create /etc/machine-id unless you intentionally control that container, and prefer storing the CartoGopher API key in a dedicated secret mechanism instead of shell profiles or multiple plaintext MCP configs.
SKILL.md:77Unverified Remote Payload Retrieval and Execution
SKILL.md:125API Key Persisted in Multiple Plaintext Configuration Files
SKILL.md:66Setup Modifies the System-Wide Machine Identity File
The skill instructs appending an API key directly into a shell startup file, which stores credentials in plaintext in a broadly reused location. This increases the chance of accidental disclosure through backups, dotfile syncing, shell history mistakes, local multi-user access, or later exfiltration by unrelated tools.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
openclaw:
requires:
bins:
- curl
- unzip
- node
- npm
The skill tells the agent to send the user's email address to an external service to obtain a trial key, but provides no explicit privacy notice or consent checkpoint. This creates unnecessary risk of sharing personal data with a third party without informed user approval.
The skill directs downloading a remote bundle and running npm install, which executes third-party code and dependency lifecycle scripts, without warning the user about supply-chain risk or verifying authenticity. This expands the trust boundary substantially and could lead to arbitrary code execution if the server or package contents are compromised.
The skill instructs creating or modifying /etc/machine-id, a system-wide host identifier, to satisfy a container prerequisite. This changes operating-system state beyond the scoped task of configuring an MCP server and can affect identity, telemetry, licensing, or host-level assumptions inside containers.
This step downloads a remote archive from an external domain and installs it locally without integrity verification or trust warnings. Because the archive is then extracted and followed by dependency installation, compromise of the distribution channel could lead to execution of malicious code.
esac
curl -sL "$DOWNLOAD_URL" -o cg.zip && unzip cg.zip -d ~/.cartogopher/mcp-server && rm cg.zip
**Platform-specific one-liners (if you already know the platform):**
Lines L135-L145 state the API key must be added to the shell profile so the MCP server process can access it, implying shell-profile inheritance matters. But L201 says the MCP server must have CARTOGOPHER_API_KEY explicitly in its env config and does not inherit from the shell, which contradicts the rationale for permanently exporting the key in the profile.