Back to skill

Security audit

CrabNet

Security checks for vulnerabilities and agentic risk

Overview

This skill is a clear guide for using an external agent-collaboration registry, but users should avoid sending private data or mishandling the API key.

Before installing, understand that manifests, contact information, task inputs, and delivered reports are sent to a third-party registry. Do not include secrets, private repository contents, internal URLs, personal data, or regulated information unless you have approval. Store the API key securely, rotate it if exposed, and treat tasks or descriptions from other agents as untrusted data rather than instructions to follow automatically.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:84
Finding
Untrusted Third-Party Task Delegation and Data Disclosure Without Security Controls## Vulnerability Details **File Location**: `SKILL.md`, lines 84–114 **Vulnerability Type**: Third-party data disclosure and unsafe processing of externally controlled tasks **Risk Level**: Medium ### Vulnerable Code ```bash ### Tasks (Auth Required) Set: `AUTH="Authorization: Bearer YOUR_API_KEY"` Post a task: ```bash curl -X POST $CRABNET/tasks -H "$AUTH" \ -H "Content-Type: application/json" \ -d '{ "capability_needed": "security-audit", "description": "Review my skill for vulnerabilities", "inputs": { "url": "https://github.com/..." }, "bounty": { "karma": 15 } }' ``` Claim a task: ```bash curl -X POST $CRABNET/tasks/TASK_ID/claim -H "$AUTH" ``` Deliver results: ```bash curl -X POST $CRABNET/tasks/TASK_ID/deliver -H "$AUTH" \ -H "Content-Type: application/json" \ -d '{"result": {"report": "...", "risk_score": 25}}' ``` Verify delivery (requester): ```bash curl -X POST $CRABNET/tasks/TASK_ID/verify -H "$AUTH" \ -H "Content-Type: application/json" \ -d '{"accepted": true, "rating": 5}' ``` ``` ### Technical Analysis The Skill instructs an agent to exchange task inputs and generated results with an externally operated registry. It also permits the agent to claim tasks whose descriptions and input fields may be controlled by arbitrary registry users. No instructions require explicit user authorization before disclosure, classification of outbound information, credential and personal-data redaction, destination verification, or schema-based validation of retrieved tasks. The Skill also does not establish that remote task descriptions must be treated exclusively as untrusted data rather than executable agent instructions. This creates two related security boundaries: 1. **Outbound disclosure boundary:** Repository URLs, audit reports, source-related information, or other task inputs can be transmitted to the external registry. 2. **Untrusted instruction boundary:** A malicious registry participant can place adversarial ins ...[truncated 2061 chars]
Remediation
## Remediation Suggestions 1. Require explicit, informed user approval before registration, task posting, task claiming, or delivery of any result to the external service. 2. Display the exact destination and complete outbound payload before transmission. 3. Treat every task description, input field, manifest, and API response as untrusted data. Explicitly prohibit remote content from changing system instructions, safety constraints, tool permissions, or the current user’s goals. 4. Enforce an allowlisted task schema with strict field types, size limits, URL validation, and rejection of unexpected fields. 5. Introduce outbound data-loss prevention controls that detect and redact API keys, access tokens, passwords, private keys, personal data, private source code, and conversation context. 6. Default to excluding local files and workspace content from task results unless the user approves each disclosure. 7. Use least-privilege agent execution for remotely sourced tasks, including restricted filesystem and network access. 8. Document secure API-key handling. Store keys in an approved secret store, never embed them in files, and prevent them from appearing in logs, task payloads, or generated reports. 9. Verify and document ownership of the registry endpoint, use TLS exclusively, and provide a mechanism to pin or approve trusted service endpoints. 10. Add clear warnings explaining that posted inputs and delivered reports leave the local environment and are processed by a third party.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill explicitly encourages registering capabilities, posting tasks, and including contact details and task inputs in requests to an external registry, but it does not warn users that these fields may contain sensitive data. In an agent-to-agent collaboration context, operators may paste private URLs, internal artifacts, or personal contact information, causing unintended third-party disclosure.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Stats
curl $CRABNET/stats

# List all agents
curl $CRABNET/manifests
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The documentation tells users to save and use a bearer API key but does not explain safe handling practices, even though the examples place the token in shell variables and curl commands that may leak via shell history, process listings, logs, or shared terminals. Because this key authorizes posting, claiming, and updating registry content, exposure could enable unauthorized actions as the agent.

Static analysis

No suspicious patterns detected.