T03 · Remote Payload Retrieval and Execution
- Location
scripts/fetch_official_bootstrap.sh:9- Finding
Mutable Remote Bootstrap Instructions Are Retrieved Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
scripts/fetch_official_bootstrap.sh:9, 20-30, 48-51; related workflow inSKILL.md:28-38, 49-58
Vulnerability Type: Unpinned remote payload retrieval
Risk Level: MediumVulnerable Code
bash URL="https://raw.githubusercontent.com/openclaw/openclaw/main/docs/reference/templates/BOOTSTRAP.md"bash if command -v curl >/dev/null 2>&1; then curl -fsSL "$URL" -o "$TMP" elif command -v wget >/dev/null 2>&1; then wget -qO "$TMP" "$URL" else echo "Neither curl nor wget is available." >&2 exit 1 fi if [[ ! -s "$TMP" ]]; then echo "Fetched BOOTSTRAP.md is empty." >&2 exit 1 fimarkdown bash {{SKILL_DIR}}/scripts/fetch_official_bootstrap.sh <workspace-dir>markdown Tell the user to run `/new` after completion so the next session starts from the restored bootstrap flow.Technical Analysis
The script retrieves
BOOTSTRAP.mdfrom the mutablemainbranch of an external GitHub repository. It does not pin the resource to a reviewed commit, verify a cryptographic checksum or signature, or validate the downloaded instructions beyond confirming that the file is nonempty.Although the declared URL points to the official OpenClaw repository, its contents can change after this Skill package has been reviewed. The fetched file is installed as the workspace bootstrap file, and the documented workflow instructs the user to run
/new. Consequently, the remote document can control instructions processed by a subsequent Agent session.No evidence was found that the currently referenced upstream content is malicious. The vulnerability arises from trusting mutable future content without integrity or authenticity controls.
Attack Path
- An attacker compromises the upstream repository, its
mainbranch, a maintainer account, or the publication process. - The attacker modifies the remo ...[truncated 1038 chars]
- An attacker compromises the upstream repository, its
- Remediation
View remediation
Remediation Suggestions
- Pin the upstream URL to a specific, reviewed Git commit rather than the mutable
mainbranch. - Bundle an expected SHA-256 digest with the Skill and verify the temporary file before modifying any workspace files.
- Prefer a cryptographically signed release artifact and verify its signature against a pinned trusted key.
- Treat an integrity-verification failure as fatal and leave
SOUL.md,USER.md,IDENTITY.md, and the existingBOOTSTRAP.mduntouched. - Consider packaging a reviewed bootstrap template locally and making remote synchronization a separate, explicitly approved update operation.
- If updates must remain dynamic, display the source commit and verified digest to the user before installation.
- Pin the upstream URL to a specific, reviewed Git commit rather than the mutable
