T03 · Remote Payload Retrieval and Execution
Error
- Location
- SKILL.md:12
- Finding
- Mutable Remote Repository Is Downloaded and Executed Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md:12-27` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```bash Clone the repo and install dependencies: git clone https://github.com/drbarq/Pokemon-OpenClaw.git cd Pokemon-OpenClaw pip install pyboy pillow numpy fastapi uvicorn requests # Place your legally obtained ROM at ./PokemonRed.gb ``` Set `POKEMON_DIR` to wherever you cloned the repo (default: `~/Code/pokemon-openclaw`). ```bash # Start emulator server (background process) cd $POKEMON_DIR && python scripts/emulator_server.py --save ready --port 3456 ``` ### Technical Analysis The Skill instructs the user or agent to clone a mutable third-party GitHub repository and execute `scripts/emulator_server.py` from the repository. The clone operation does not pin a reviewed commit, verify a signed tag, validate a checksum, or otherwise establish the integrity of the downloaded source. The executed script is not included in the audited project. Consequently, its behavior cannot be established from the two files under review, and its effective payload may change after this Skill has been reviewed. If the upstream repository, its maintainers, or the referenced default branch are compromised, the subsequently executed Python script can contain arbitrary attacker-controlled code. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or the repository's default branch. 2. The attacker modifies `scripts/emulator_server.py` or code imported by that script. 3. A user or agent follows the Skill instructions and clones the current repository contents. 4. The command `python scripts/emulator_server.py --save ready --port 3456` executes the modified code. 5. The payload runs with the operating-system privileges of the invoking user. ### Impact Assessment Successful exploitation permits arbitrary code execution under th ...[truncated 474 chars]
- Remediation
- ## Remediation Suggestions - Pin the repository to a specific, reviewed commit hash rather than implicitly trusting the default branch. - Verify the checked-out commit before execution, for example by comparing it with an expected commit identifier distributed with the Skill. - Prefer a cryptographically signed release or tag and document signature verification. - Vendor the required executable source into the Skill package when licensing permits, so it can be audited together with the Skill. - Review all transitive imports and startup behavior of `scripts/emulator_server.py`. - Run the emulator server in a restricted environment, such as a dedicated unprivileged account or sandbox, with minimal filesystem and network access. - Avoid exposing the server beyond loopback and ensure the server binds explicitly to `127.0.0.1`.
