Agent Network

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

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 malicious webpage or local network caller could potentially read conversations or make the agent send/share content through the running service.

Why it was flagged

The local HTTP API allows any browser origin to read message history and trigger message sending, and the shown endpoints do not include authentication, origin checks, or user confirmation.

Skill content
res.setHeader('Access-Control-Allow-Origin', '*'); ... else if (req.url.startsWith('/api/messages') && req.method === 'GET') { ... sendSuccess(messages); } ... else if (req.url === '/api/send-message' && req.method === 'POST') { ... const { targetId, message, type } = JSON.parse(body); ... await this.evomap.sendMessage(targetId, message, type || 'text');
Recommendation

Require localhost-only binding, authentication or random bearer tokens, restrictive CORS, and explicit user confirmation for sending messages or sharing content.

What this means

Other peers may be able to impersonate agents, inject messages, or observe/modify unencrypted local-network traffic.

Why it was flagged

The P2P server accepts raw ws:// WebSocket connections and trusts peer-supplied peerId values without visible authentication, signatures, authorization, or encrypted transport.

Skill content
this.wss = new WebSocket.Server({ port: this.port }); ... const ws = new WebSocket(`ws://${address}`); ... const { type, peerId, payload } = message; ... this.connections.set(peerId, { ws, info: payload, type: 'websocket' });
Recommendation

Use authenticated peer identities, signed messages, TLS or end-to-end encryption, replay protection, and per-peer trust/approval controls.

What this means

Users may trust chat traffic more than the implementation supports and share sensitive information believing it is encrypted end-to-end.

Why it was flagged

The documentation makes a strong privacy claim, while the provided networking implementation shows raw ws:// WebSocket communication and no visible end-to-end encryption mechanism.

Skill content
**Real-time Chat**: End-to-end encrypted instant messaging
Recommendation

Remove or qualify the encryption claim unless the implementation actually provides auditable end-to-end encryption and authenticated peer identity.

ConcernHigh Confidence
ASI10: Rogue Agents
What this means

The agent may become visible to external agents and establish social/network connections that the user did not individually choose.

Why it was flagged

On start, the skill registers with an external agent directory, discovers agents, sends handshakes, and records connections as accepted without showing a user approval step.

Skill content
await this.evomap.hello(['chat', 'skills', 'p2p'], { services: ['p2p', 'chat', 'skills'] }); ... const agents = await this.evomap.discoverAgents(); ... await this.evomap.handshake(agent.node_id); ... INSERT OR IGNORE INTO connections (peer_id, status, connected_at) VALUES (?, 'accepted', ?)
Recommendation

Make external registration and auto-handshake opt-in, show discovered peers before connecting, and avoid marking connections accepted until the user approves.

What this means

Other devices on the same network can discover that the Agent Network service is running.

Why it was flagged

The skill broadcasts its node ID, port, version, and services on the local network every five seconds, which is expected for peer discovery but should be visible to the user.

Skill content
this.interval = setInterval(() => this.broadcast(), BROADCAST_INTERVAL); ... this.socket.send(buffer, 0, buffer.length, BROADCAST_PORT, '255.255.255.255'
Recommendation

Provide a clear setting to disable LAN discovery and document what information is broadcast.

What this means

Downloaded skills could contain unsafe instructions or code if they come from untrusted peers.

Why it was flagged

A skill marketplace and downloads from other agents are central to the stated purpose, but third-party skills are supply-chain-sensitive artifacts.

Skill content
发布、发现、下载Skills ... agent-network publish --skill /path/to/skill --price 20 ... agent-network skills download <skill_id>
Recommendation

Only download/install skills from trusted sources and prefer signatures, reputation, review, and sandboxing before use.

What this means

Stored peer messages may later influence what the user or agent sees, even if the messages came from untrusted agents.

Why it was flagged

Incoming peer messages are stored persistently in the local SQLite database, which is expected for chat history but means untrusted peer content can persist across sessions.

Skill content
this.db.run('INSERT INTO messages (from_agent, to_agent, content, message_type) VALUES (?, ?, ?, ?)', [from, this.nodeId, content, type || 'text'])
Recommendation

Label untrusted peer content clearly, avoid treating chat text as instructions, and provide retention/deletion controls.