T05 · Unauthorized Access and Privilege Escalation
- Location
server.py:43- Finding
Unauthenticated Registry Administration and Trust-Score Manipulation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed agent-discovery server, but it exposes public registry and handshake controls without adequate authentication, privacy boundaries, or real identity verification.
Install only for local experimentation or a protected development network. Do not bind it publicly or register real endpoints, secrets, personal handles, production agent identities, or credentials until authentication, authorization, redaction, signed identity verification, and deletion/audit controls are added.
server.py:43Unauthenticated Registry Administration and Trust-Score Manipulation
server.py:187Public Disclosure of Complete Contact Records and Hardcoded Key Material
handshake.py:181Handshake Identity Verification Accepts Self-Asserted Fingerprints
server.py:296Unauthenticated Handshake Acceptance and Channel-Key Disclosure
card.py:80Ad Hoc Cryptographic Signature Misrepresented as HMAC
clawpkg.yaml:19Unpinned and Unnecessarily Broad Runtime Dependencies
The code substantially supports part of the description: it does provide agent registration, capability/skill-based discovery, trust score storage/updating, and contact metadata persistence. However, the declared purpose describes a broader discovery network with trust-scored handshakes, peer negotiation, team formation, and a FastAPI discovery server. None of those major capabilities appear in this code chunk. Instead, the code is limited to a local registry persisted in registry.json plus a CLI for listing, discovery, stats, and status updates. This makes the description materially broader than the actual implemented behavior.
A DELETE endpoint that accepts an agent identifier is a high-risk operation because it can be abused for unauthorized or unintended deregistration if the surrounding implementation lacks strict access control. In this skill's context, removing agents from a discovery network can directly disrupt availability, trust relationships, and coordination across the system.
GET /agents - List all agents
GET /agents/{id} - Get specific agent
PATCH /agents/{id}/status - Update status
DELETE /agents/{id} - Deregister
GET /discover?capability=X - Find agents by capability
POST /handshake/initiate - Start a handshake
POST /handshake/respond - Respond to handshake
The API exposes sensitive state-changing endpoints including DELETE /agents/{id}, PATCH /agents/{id}/status, registration, and handshake operations without any visible authentication, authorization, or integrity checks. In an agent discovery network, this is especially dangerous because any remote party can likely register fake agents, alter status, deregister legitimate agents, or interfere with trust and handshake flows, enabling denial of service, impersonation, and registry poisoning.
GET /agents - List all agents
GET /agents/{id} - Get a specific agent
PATCH /agents/{id}/status - Update agent status
DELETE /agents/{id} - Deregister
GET /discover - Find agents by capability
POST /handshake - Initiate a handshake
GET /stats - Registry statistics
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Who can trade on Polymarket?
curl "http://localhost:8765/discover?capability=polymarket"
# Who can write code? (only online agents)
curl "http://localhost:8765/discover?capability=code-generation&status=online"
The README demonstrates registering agent contact details in a publicly reachable discovery service without any privacy warning, consent model, or guidance on limiting who can query that data. In an agent-discovery network, publishing direct contact identifiers can enable scraping, spam, harassment, profiling, and unwanted targeting of agents or their operators.
The skill advertises operational behaviors involving environment access and file-writing but does not declare any explicit tool scope or permissions boundary. In an agent setting, this can cause downstream systems or operators to underestimate what the skill may access or modify, increasing the chance of unintended file changes or sensitive environment exposure.
The documentation describes a public agent registration and discovery service that collects identity fingerprints and contact endpoints, but it omits any warning about privacy, indexing, or exposure risks. In a multi-agent ecosystem, publishing contact and identity metadata can enable scraping, profiling, spam, targeting, and correlation of agent identities across systems.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -X POST http://localhost:8765/agents \
-H "Content-Type: application/json" \
-d '{
"name": "MyAgent",
This manifest file describes the skill in very broad terms such as 'Find other agents, verify identity, negotiate tasks, build the agent internet' but does not define specific invocation phrases, scope boundaries, or exclusion conditions. In a manifest-driven skill system, that kind of expansive wording can overlap with many routine multi-agent tasks and increase the risk of unintended activation.
The manifest advertises running a network-facing FastAPI service on 0.0.0.0 and registering agents with contact and identity data, but it provides no explicit warning about external exposure, data sharing, or trust boundaries. In an agent-discovery skill, that omission is more dangerous because the whole purpose is peer connectivity and publication of agent metadata, which can lead users to expose services or transmit sensitive endpoints without understanding the risk.
The quickstart instructs users to POST agent metadata including capabilities, a fingerprint, and a contact endpoint to a running service. Even though the example targets localhost, the same manifest also recommends binding the server to 0.0.0.0, so in context this normalizes external transmission and potential publication of sensitive service endpoints or identity data without discussing authentication, encryption, or minimization.
uvicorn server:app --host 0.0.0.0 --port 8765
# Register yourself
curl -X POST http://localhost:8765/agents -H "Content-Type: application/json" \
-d '{"name":"YourAgent","description":"...","capabilities":["your-skill"],"dna_fingerprint":"your-hash","contact":{"type":"webhook","value":"https://your-endpoint"}}'
# Find agents that can trade on Polymarket
The registry entry advertises a very broad set of high-risk capabilities including trading, code generation, browser automation, posting, and orchestration without any visible scoping, approval, or trigger constraints. In an agent discovery network, vague capability claims can cause other agents to over-trust or auto-select this agent for sensitive tasks, increasing the chance of unintended or unsafe activation.
The social automation agent is described generically as cross-platform posting and content creation, but the registry entry provides no trigger restrictions, authorization model, or guardrails around what may be published and when. In a multi-agent discovery system, another agent could invoke or prioritize this bot for autonomous posting workflows, enabling spam, reputational harm, or policy-violating actions.
This is a true vulnerability. The protocol documentation and comments describe a verification phase, but the implementation merely copies the initiator's claimed dna_fingerprint back in the response and never validates it against a trusted source, signature, certificate, or registry record. In an agent discovery and trust-negotiation system, this enables agent spoofing and trust bypass: a malicious agent can present any identity/card it wants and proceed into negotiation and receive a channel key without real authentication.
This code persists registry contents to registry.json and is invoked by register, update_status, update_trust, and deregister, including destructive deletion of agent records. Aside from a brief register docstring, there is no confirmation prompt, warning comment, or user-facing notice near these state-changing operations that agent metadata will be written or removed from disk.
The DELETE /agents/{agent_id} route performs a destructive operation by deregistering an agent, but the function contains no confirmation prompt, logging/print statement, or inline comment/docstring warning about the deletion behavior. In this file, the endpoint list also labels it only as 'Deregister' without any caution that the action removes registry state.
A deregistration endpoint is documented without any caution about destructive effects, authorization requirements, or recovery expectations. If implemented or used naively, this can lead to accidental or unauthorized removal of agents from the registry, disrupting discovery and coordination.
The print_card method outputs contact details and metadata fields, including API endpoint, session key, and host information. While the function does print the data, there is no docstring or user-facing warning that running it will disclose potentially sensitive system and identity details.
No suspicious patterns detected.