T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:12- Finding
Mutable Remote Repository Is Downloaded and Executed Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:12-27
Vulnerability Type: Remote payload retrieval and execution
Risk Level: HighVulnerable 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.gbSet
POKEMON_DIRto 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 3456Technical Analysis
The Skill instructs the user or agent to clone a mutable third-party GitHub repository and execute
scripts/emulator_server.pyfrom 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
- An attacker compromises the upstream repository, a maintainer account, or the repository's default branch.
- The attacker modifies
scripts/emulator_server.pyor code imported by that script. - A user or agent follows the Skill instructions and clones the current repository contents.
- The command
python scripts/emulator_server.py --save ready --port 3456executes the modified code. - 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
View 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.
