T03 · Remote Payload Retrieval and Execution
- Location
- SKILL.md:41
- Finding
- Mutable Remote Code Is Retrieved and Executed Without Version Pinning<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:41-45` **Vulnerability Type**: Remote code retrieval and supply-chain exposure **Risk Level**: High ### Vulnerable Code ```bash git clone https://github.com/rodbland2021/claw-recall.git cd claw-recall pip install -r requirements.txt python3 -m claw_recall.indexing.indexer --source ~/.openclaw/agents-archive/ --incremental ``` ### Technical Analysis The installation procedure clones the mutable default branch of an external Git repository and immediately installs its dependencies and executes one of its Python modules. It does not pin a reviewed commit, signed tag, package version, or dependency hashes. Consequently, the code executed by a user can differ from the code that was reviewed during this audit. The referenced `requirements.txt` is also outside the supplied project, so its packages, versions, package indexes, and build-time behavior could not be verified. This most directly represents remote payload retrieval and execution. The unverified requirements file also creates a secondary dependency supply-chain risk. ### Attack Path 1. An attacker compromises the referenced repository, a maintainer account, or a dependency used by its `requirements.txt`. 2. The attacker adds malicious Python code or package installation behavior to the mutable upstream source. 3. A user follows the documented installation commands. 4. `pip install` executes malicious package build or installation logic, or the subsequent `python3 -m` command executes the modified module. 5. The payload runs with the privileges of the installing user and can access that user's files, environment variables, agent archives, and configured credentials. ### Impact Assessment Successful exploitation provides arbitrary code execution under the installing user's account. The accessible scope may include OpenClaw conversation archives, agent configuration files, API keys in the environment, the local memory database, and any othe ...[truncated 114 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin the repository to a specific reviewed commit or cryptographically signed release tag. - Publish and verify checksums or signatures for release artifacts. - Replace the unconstrained requirements file with a lockfile containing exact versions and cryptographic hashes. - Install with hash verification, such as `pip install --require-hashes`. - Use a dedicated virtual environment or container with minimal filesystem and network permissions. - Review dependency installation hooks and transitive dependencies before installation. - Avoid executing the indexer until the downloaded source and dependencies have been independently verified. ]]>
