Agent Communication

WarnAudited by ClawScan on May 10, 2026.

Overview

This is a coherent multi-agent messaging tool, but it exposes an unauthenticated agent communication server and unsafe shared-file paths that could let others spoof agents or alter files.

Install only if you need multi-agent messaging and can run it in a trusted environment. Before use, change the broker to localhost-only or firewall port 8765, add authentication, validate agent IDs and workspace keys, avoid sending sensitive data through it, and stop the server when not needed.

Findings (6)

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

Anyone who can reach port 8765 could impersonate agents, read queued messages for an agent ID, send or broadcast forged messages, and query agent status.

Why it was flagged

The broker listens on all interfaces and lets a client claim any agent_id; a client claiming an ID can receive queued messages for that agent, with no visible authentication, origin check, or allowlist.

Skill content
HOST = "0.0.0.0" ... agent_id = msg.get("agent_id"); await self.register_agent(agent_id, websocket) ... for msg in self.message_queue[agent_id]: await websocket.send(json.dumps(msg))
Recommendation

Bind to 127.0.0.1 by default, add authentication or signed agent registration, restrict allowed agent IDs, validate WebSocket origins, and use firewall/TLS controls for any non-local use.

What this means

A reachable client could cause the broker process to create or overwrite JSON files outside the intended skill data area where the process has permission.

Why it was flagged

Network-supplied agent_id and to values are used directly in filesystem paths. Values containing slashes, '..', or absolute paths can escape the intended data directories.

Skill content
status_file = DATA_DIR / "status" / f"{agent_id}.json" ... inbox_dir = DATA_DIR / "messages" / msg["to"] / "inbox"
Recommendation

Validate agent IDs with a strict safe pattern, reject path separators and absolute paths, resolve paths before writing, and enforce that all writes remain under the skill's data directory.

What this means

If an agent or user supplies an unsafe key, the workspace tool may read, overwrite, or delete JSON files outside the shared workspace.

Why it was flagged

The workspace key is used directly as a path for read/write/delete operations without normalization or containment checks.

Skill content
data_file = WORKSPACE_DIR / f"{key}.json" ... with open(data_file, "w") ... data_file.unlink()
Recommendation

Treat workspace keys as logical names only: allow only simple key characters, reject '..' and '/', resolve paths, and verify the final path stays under WORKSPACE_DIR before reading, writing, or deleting.

What this means

Forged or stale messages could become trusted coordination context and cause future agents to act on misleading instructions.

Why it was flagged

Messages are saved and queued for later delivery, so unverified sender content can persist and be reused by other agents.

Skill content
await self.save_message(msg) ... self.message_queue[to_agent].append(msg)
Recommendation

Authenticate senders, record provenance, mark messages as untrusted until verified, expire old messages, and require human confirmation before agents act on high-impact received instructions.

What this means

The communication service may continue accepting connections and storing messages for as long as it is running.

Why it was flagged

The broker is designed to run indefinitely after the user starts it. This is purpose-aligned, but users should understand it remains active until stopped.

Skill content
async with serve(broker.handle_connection, HOST, PORT): await asyncio.Future()  # 永久运行
Recommendation

Run the broker only when needed, stop it when collaboration is finished, and avoid leaving it exposed on untrusted networks.

What this means

Manual unpinned installs can change over time and are harder to reproduce or audit.

Why it was flagged

The setup documentation suggests manual dependency and optional repository installation without a pinned package version or commit.

Skill content
pip install websockets ... git clone https://github.com/DFshmily/agent-communication.git
Recommendation

Pin dependency versions, document trusted source locations, and prefer a reviewed install spec or lockfile.