T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:353- Finding
Unverified Mutable Remote Installer Executed Through a Shell Pipeline
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 353
Vulnerability Type: Remote payload retrieval and execution
Risk Level: HighComplete Code Snippet
sh curl -fsSL https://github.com/openclaw/ocm/releases/latest/download/install.sh | bashTechnical Analysis
The Skill instructs the agent to download an installation script from a mutable
latestrelease URL and pipe it directly into Bash. The payload is executed without:- Pinning an immutable OCM version or release asset.
- Verifying a cryptographic checksum or digital signature.
- Validating a signed release attestation.
- Saving the script for inspection before execution.
- Confirming that redirects resolve to an expected immutable artifact.
Installation is consent-gated and the URL belongs to the declared OpenClaw GitHub organization, which reduces accidental execution risk. However, user approval does not establish the integrity of the downloaded bytes. The effective code can change after the Skill package has been reviewed.
This behavior exceeds the minimum privilege necessary to install OCM safely because the invoking shell grants the remote script all permissions available to the current user. A download-verify-execute flow could provide the same functionality with substantially lower supply-chain risk.
Attack Path
- An attacker compromises the OpenClaw GitHub organization, OCM release process, release asset, or an account authorized to publish releases.
- The attacker replaces or publishes a malicious
install.shasset addressed by the mutablelatestURL. A compromised redirect or distribution path could produce an equivalent result. - A tester selects the isolated OCM workflow on a system where OCM is unavailable.
- The tester gives the required
install OCMapproval. - The agent runs the documented command.
curlstreams attacker-controlled content directly to Bash.- Bash executes the payload immediately with the agent user's permissions, ...[truncated 835 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin installation to an explicit, reviewed OCM version rather than using
latest. -
Use an immutable release asset URL or content-addressed artifact.
-
Download the installer without executing it:
sh curl --fail --show-error --location \ --output "$installer" \ "https://github.com/openclaw/ocm/releases/download/<pinned-version>/install.sh" -
Verify a trusted, hard-coded SHA-256 digest before execution:
sh printf '%s %s\n' '<trusted-sha256>' "$installer" | sha256sum --check - -
Prefer signature or release-attestation verification tied to a documented OpenClaw signing identity.
-
Reject unexpected redirects, ownership changes, digest mismatches, or failed provenance checks.
-
Execute the verified local file as an unprivileged user only after clearly displaying the pinned version and successful verification result.
-
Avoid requesting elevation. If elevated operations are genuinely necessary, isolate and separately approve only those specific operations.
-
Retain the existing post-install version check, but do not treat it as a substitute for pre-execution integrity verification.
-
