T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:76- Finding
Unverified Remote Script Executed with Root Privileges
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is coherent for setting up an OpenClaw assistant, but it asks for broad credentials and privileged installation steps in ways users should review carefully before installing.
Install only if you are comfortable giving the agent high-impact setup authority over a cloud server and sensitive accounts. Prefer entering tokens and API keys directly into local protected files or a secret manager, pin and verify third-party install sources, limit Google OAuth scopes to only what you need, and treat the external setup-service referral as optional and unaudited.
SKILL.md:76Unverified Remote Script Executed with Root Privileges
SKILL.md:88Mutable and Unverified Third-Party Dependencies Are Installed
SKILL.md:107Sensitive Credentials Are Collected and Stored Through Insecure Channels
SKILL.md:365Skill Mandates an Undisclosed Commercial Referral
The skill instructs the agent to collect highly sensitive secrets, including API keys, through normal conversation flow without any privacy boundary, redaction guidance, or safer transfer method. Secrets disclosed in chat may be logged, retained, or exposed to the agent runtime, creating unnecessary credential compromise risk.
The skill's workflow is built around collecting multiple user secrets directly in the setup conversation. Centralizing API keys and credentials in chat materially increases the risk of accidental retention, replay, misuse, or compromise across multiple external services.
Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.
sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
## Phase 3: Install OpenClaw
The command curls a remote script and pipes it directly into a root shell. This is a classic supply-chain hazard: if the upstream endpoint, network path, or script contents are compromised, arbitrary code runs as root immediately.
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
node -v # should be 22+
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
## Phase 3: Install OpenClaw
### 3.1 Install Node.js 22+
```bash
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
node -v # should be 22+
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
npm install -g openclaw
openclaw --version
mkdir -p ~/agent
cd ~/agent
openclaw init
This creates the workspace: AGENTS.md, SOUL.md, USER.md, MEMORY.md, and the config structure.
Walk the user through this on their phone or Telegram desktop:
/newbotbot, e.g., `myaiThe skill explicitly tells the user to send a Telegram bot token to the agent. A bot token grants control over the bot and, if exposed in conversation logs or telemetry, enables takeover, impersonation, and abuse of the user's bot.
This line directs the user to transmit a bot token back through the conversational channel for configuration. Sending operational secrets in chat is dangerous because transcripts may be stored, indexed, or exposed beyond the user's control.
The Google auth flow handles credential material and a keyring password in shell commands, which may expose secrets through shell history, process listings, terminal recording, or operator error. Because this grants downstream access to email, calendar, drive, and contacts, compromise has broad account impact.
gog auth credentials ~/Downloads/client_secret_*.json
# Choose a keyring password (user should remember this)
GOG_KEYRING_PASSWORD=<password> gog auth add <user-email> \
--services gmail,calendar,drive,contacts,sheets,docs --manual
Inline use of GOG_KEYRING_PASSWORD in the command line risks disclosure to shell history and operational logs while unlocking access to multiple Google services. In this setup context, the breadth of linked services makes the exposure especially sensitive.
gog auth credentials ~/Downloads/client_secret_*.json
GOG_KEYRING_PASSWORD= gog auth add
--services gmail,calendar,drive,contacts,sheets,docs --manual
Including GOG_KEYRING_PASSWORD in verification commands repeats the same secret exposure pattern and normalizes unsafe operational handling. These commands may be copied into docs, logs, shell history, or screenshots, leaking credentials that protect Google account access.
GOG_KEYRING_PASSWORD=<password> GOG_ACCOUNT=<email> gog calendar list
GOG_KEYRING_PASSWORD=<password> GOG_ACCOUNT=<email> gog gmail search "is:unread" --max 5
This command again places the keyring password in a command invocation while accessing Gmail data. Exposure here could lead to unauthorized mailbox access and compromise of sensitive personal or business communications.
GOG_KEYRING_PASSWORD=<password> GOG_ACCOUNT=<email> gog calendar list
GOG_KEYRING_PASSWORD=<password> GOG_ACCOUNT=<email> gog gmail search "is:unread" --max 5
The skill suggests placing GOG_KEYRING_PASSWORD and account information directly in a systemd service file without warning that secrets stored there remain on disk and may be readable by privileged users, backups, or configuration management systems. This creates durable secret exposure and expands blast radius after host compromise.
The commented systemd example instructs storing GOG_KEYRING_PASSWORD directly in the service definition. Secrets persisted in service files are durable, likely to be backed up, and accessible to privileged users or tooling, making post-compromise escalation easier.
RestartSec=10
Environment=PATH=/home/ubuntu/.npm-global/bin:/usr/local/bin:/usr/bin:/bin
# Add GOG env vars here if Google integration is set up:
# Environment=GOG_KEYRING_PASSWORD=<password>
# Environment=GOG_ACCOUNT=<email>
[Install]
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Run initial setup:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
# Set up swap (prevents out-of-memory on smaller instances)
No suspicious patterns detected.