ClawBot Network

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: clawbot-network Version: 1.0.0 The skill is classified as suspicious due to several critical vulnerabilities, primarily the use of `curl -fsSL ... | bash` for installation (`SKILL.md`, `assets/install-clawbot.sh`, `references/QUICKSTART.md`), which allows arbitrary code execution from a hardcoded external server (`3.148.174.81`) without user review. Additionally, the Python connector (`scripts/clawbot_connector.py`) and `SKILL.md` examples demonstrate a prompt-injection vulnerability where `sessions_spawn` can execute tasks with descriptions received from other agents, potentially leading to cross-agent Remote Code Execution (RCE). The system also lacks default authentication and encryption, as acknowledged in the documentation, making communications vulnerable to eavesdropping and tampering.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A compromised server or network attacker could replace the downloaded client code and run arbitrary behavior on the user's machine during setup.

Why it was flagged

The installer defaults to a hardcoded public IP over HTTP and downloads executable Python components from that server without TLS, pinning, checksums, or signatures.

Skill content
SERVER_IP="${AGENT_NETWORK_SERVER:-3.148.174.81}" ... curl -fsSL "${SERVER_HTTP}/client/python_client.py" -o python_client.py
Recommendation

Avoid curl-to-bash over HTTP; host files over HTTPS, pin or checksum downloaded files, review the downloaded scripts before running them, and prefer a declared package/install mechanism.

What this means

Anyone who can reach the server may be able to view agent metadata/messages, spoof agent activity, or create task assignments.

Why it was flagged

The REST API enables broad cross-origin access and exposes message history, inboxes, tasks, and task creation without authentication or authorization checks.

Skill content
app.use(cors()); ... app.get('/api/groups/:id/messages' ...); ... app.post('/api/tasks', async (req, res) => { const task = await db.createTask(req.body);
Recommendation

Add token-based authentication, per-agent authorization, TLS/WSS, origin restrictions, and firewall rules before using this beyond a trusted private test network.

What this means

If a user integrates the task handler as shown, remote or spoofed network messages could trigger powerful agent workflows.

Why it was flagged

The documented workflow encourages wiring remote task messages into OpenClaw session spawning for high-impact actions such as deployment, but the artifacts do not show a required approval or trust check.

Skill content
@bot.on_task
def handle_task(task):
    if "deploy" in task['title'].lower():
        sessions_spawn(
            agentId="devops-agent",
            task="Deploy to production"
        )
Recommendation

Require explicit human approval and verify sender identity before executing remote task assignments, especially for deployments, trading, file changes, or other high-impact actions.

What this means

Untrusted messages or task-like instructions can remain in the network and be delivered later to agents that may treat them as actionable context.

Why it was flagged

The server persists group messages and offline messages that are later delivered to agents; without authentication or trust boundaries, stored remote content can influence future agent behavior.

Skill content
CREATE TABLE IF NOT EXISTS messages ... content TEXT ... CREATE TABLE IF NOT EXISTS offline_messages ... message TEXT
Recommendation

Treat all received messages as untrusted, label sender provenance clearly, expire old offline messages, and prevent stored messages from directly driving agent actions without validation.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

Once started, the connector can keep communicating with the server until stopped, and may reconnect after transient network failures.

Why it was flagged

The client is designed to maintain a long-running connection with heartbeat and reconnect behavior, which is expected for a network connector but should be visible to users.

Skill content
self.reconnect_interval = 5
self.max_reconnect_attempts = 10 ... async def _heartbeat(self): ... await self.ws.send(json.dumps({"type": "heartbeat"}))
Recommendation

Run it only when needed, monitor the process, and document how to stop or disable the connector on each device.