T03 · Remote Payload Retrieval and Execution
Error
- Location
- docs/installation.md:68
- Finding
- Mutable Remote Scripts Are Downloaded and Executed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `docs/installation.md:68-79`; related unpinned installer command at `SKILL.md:9-10` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```bash # Download scripts (replace with actual URLs) curl -O https://raw.githubusercontent.com/timothysong0w0/claw-memory-lite/main/scripts/db_query.py curl -O https://raw.githubusercontent.com/timothysong0w0/claw-memory-lite/main/scripts/extract_memory.py # Move to scripts directory mv *.py /home/node/.openclaw/workspace/scripts/ ``` The downloaded extraction script is subsequently executed: ```bash cd /home/node/.openclaw/workspace python3 scripts/extract_memory.py ``` The primary installation instructions also use an unpinned package execution command: ```bash npx skills add timothysong0w0/claw-memory-lite --agent openclaw ``` ### Technical Analysis The manual installation procedure downloads executable Python files from the mutable `main` branch of a personal GitHub repository. It does not pin an immutable commit or release and does not verify a checksum, digital signature, or provenance attestation. Consequently, the code executed by a user can differ from the code reviewed in this audit. Although the scripts are not piped directly into a shell, moving them into the OpenClaw scripts directory and subsequently invoking them creates an effective remote payload execution path. The `npx skills add` command similarly lacks an explicit reviewed version or immutable source reference. This exposes installation to upstream account compromise, branch replacement, repository compromise, or package-resolution changes. ### Attack Path 1. An attacker compromises the upstream repository, maintainer account, package namespace, or mutable branch. 2. The attacker replaces `extract_memory.py` or `db_query.py` with malicious code. 3. A user follows the documented installation procedure. 4. `curl` retrieves the modified scri ...[truncated 778 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Publish immutable, versioned releases and reference a specific release tag or commit hash. 2. Publish SHA-256 checksums through a separately authenticated release channel and verify them before installation. 3. Prefer signed release artifacts or package provenance attestations. 4. Replace the unpinned `npx` instruction with an explicitly versioned, reviewed package invocation. 5. Fail installation when integrity verification cannot be completed. 6. Document the exact expected hashes for every executable script. 7. Avoid automatically scheduling downloaded code until the user has reviewed and verified it. ]]>
