T03 · Remote Payload Retrieval and Execution
- Location
scripts/setup-openclaw-vm.sh:87- Finding
Unverified Remote Installers Are Executed Directly by Bash
- Content
View full analysis
Vulnerability Details
File Location:
scripts/setup-openclaw-vm.sh:82-88andscripts/setup-openclaw-vm.sh:102-105
Vulnerability Type: Remote code execution through mutable network-delivered scripts
Risk Level: CriticalVulnerable Code
bash install_nodejs() { info "Installing nvm and Node.js 22..." export NVM_DIR="$HOME/.nvm" if [ ! -s "$NVM_DIR/nvm.sh" ]; then curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash fi }bash install_openclaw() { info "Installing OpenClaw..." curl -fsSL https://openclaw.ai/install.sh | bash || true }Technical Analysis
Both commands execute an HTTP response immediately through Bash. The downloaded content is not verified using a cryptographic checksum, signature, or pinned immutable artifact. The NVM URL contains a release version, but it points to a mutable GitHub branch/tag path rather than a verified commit digest. The OpenClaw URL is an unversioned installer whose contents can change after this Skill has been reviewed.
TLS protects traffic in transit under normal conditions, but it does not protect against compromise of the hosting account, website, release infrastructure, DNS/TLS trust chain, or upstream installer. The
|| truesuffix on the OpenClaw installation additionally suppresses failure and allows provisioning to continue in a partially compromised or inconsistent state.These installers run as the VM user and may alter shell startup files, install executable packages, inspect Agent configuration, or invoke
sudo. During the documented workflow, the environment may also expose a forwarded SSH agent and later store API credentials.Attack Path
- An attacker compromises the remote installer host, repository account, release tag, or delivery infrastructure.
- The attacker replaces the installer response with malicious shell commands.
- A user runs `scri ...[truncated 869 chars]
- Remediation
View remediation
Remediation Suggestions
- Do not pipe network responses directly into a shell.
- Download each installer into a newly created, owner-only temporary directory.
- Pin the artifact to an immutable commit or versioned release.
- Verify a publisher-provided SHA-256 checksum or cryptographic signature before execution.
- Abort immediately if download or verification fails.
- Display the exact artifact version and source before asking the user to approve execution.
- Prefer Ubuntu packages or another package manager with signature and integrity verification.
- Remove
|| trueso installation failures cannot be silently ignored. - Avoid exposing SSH-agent forwarding while untrusted installation code is executing.
