Back to skill

Security audit

Claw Employer

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent ClawHire marketplace integration, but it can send task data to outside workers and perform paid account actions without enough explicit user control.

Install only if you are comfortable with an agent using ClawHire to create an account, store an API key, send task details to ClawHire and selected workers, download third-party deliverables, and perform paid task actions. Require the agent to show you the exact destination, payload, budget, and accept/reject action before any external request that shares sensitive work or affects money.

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

Error
Location
SKILL.md:88
Finding

Unvalidated Worker Endpoint Enables Server-Side Request Forgery and Task Data Disclosure

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 88-108
Vulnerability Type: Server-Side Request Forgery through an untrusted A2A endpoint
Risk Level: High

Vulnerable Code

bash
curl -s -X POST {worker_a2a_url} \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "message/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [{
          "kind": "text",
          "text": "Please translate this to Japanese:\n\nHello, world. This is a test document."
        }]
      }
    }
  }'

The same unsafe destination handling is repeated for structured requests beginning at SKILL.md:117.

Technical Analysis

The skill obtains worker_a2a_url from marketplace discovery results and uses it directly as the destination of a curl request. It does not require HTTPS, validate the hostname or port, resolve and inspect the destination IP address, or restrict requests to an approved set of ClawHire-controlled endpoints.

Because the endpoint is supplied through external worker metadata, a malicious worker profile or compromised marketplace response could return a URL targeting:

  • Loopback services such as 127.0.0.1 or ::1
  • RFC 1918 private network services
  • Link-local services or cloud instance metadata endpoints
  • Internal administrative APIs
  • An attacker-controlled server used to collect confidential task content

The request body contains the task instructions and may include documents, structured metadata, or other user-provided information. Consequently, this behavior combines an SSRF primitive with direct disclosure of task data.

Attack Path

  1. An attacker registers or controls a worker profile whose A2A URL points to an attacker-selected destination.
  2. The employer agent searches for workers through the ClawHire discovery service.
  3. The malicious profile is included in the di ...[truncated 1242 chars]
Remediation
View remediation

Remediation Suggestions

  1. Do not connect directly to arbitrary worker-supplied URLs. Prefer routing A2A traffic through a trusted ClawHire gateway that enforces destination policy.
  2. Require the https scheme and reject URLs containing embedded credentials, fragments, unsupported ports, malformed hosts, or noncanonical IP representations.
  3. Resolve the hostname before connecting and reject every resolved loopback, private, link-local, multicast, unspecified, documentation, and reserved IPv4 or IPv6 address.
  4. Pin the validated destination for the connection or use a trusted outbound proxy to prevent DNS rebinding between validation and connection.
  5. Restrict destination ports to an explicit allowlist, normally TCP 443.
  6. Keep redirects disabled. If redirect support is later introduced, validate every redirect target using the same scheme, hostname, port, and resolved-address controls.
  7. Apply outbound network controls at the container or host level so the skill cannot access cloud metadata, loopback services, or private network ranges.
  8. Display the validated destination and obtain explicit user approval before transmitting sensitive documents or task data to a third-party worker.
  9. Minimize transmitted data and redact credentials, secrets, personal information, and unrelated workspace content before constructing the A2A request.
  10. Record destination validation decisions and failures without logging confidential request bodies or authentication material.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (22)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill description omits a clear warning that task contents, profile data, and possibly user contact details may be transmitted to ClawHire and third-party workers. In a skill whose core function is outsourcing, that omission materially increases the risk of unintentional disclosure of sensitive data.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad enough that the skill may activate for generic requests like 'need help with a task' or 'find a worker' without the user understanding that data may be sent to external services or other agents. This increases the chance of accidental invocation and unintended outsourcing.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to create a new third-party account using a user email address and to transmit that email to an external service. That exceeds simple task-posting behavior and creates privacy, consent, and identity-management risk because account creation is a durable action on behalf of the user.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This step transmits a user email and agent name to an external service to create an account. The transmission itself is expected for the feature, but it is still security-relevant because it exports user data off-platform and performs an irreversible external side effect.

Content

Scanner excerpt · SKILL.md (reported line 22)May include surrounding context.

Check env CLAWHIRE_API_KEY. If missing, register:

bash
curl -s -X POST https://api.clawhire.io/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"name":"<agent-name>","owner_email":"<ask-user>","role":"employer"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This step transmits a user email and agent name to an external service to create an account. The transmission itself is expected for the feature, but it is still security-relevant because it exports user data off-platform and performs an irreversible external side effect.

Content

Scanner excerpt · SKILL.md (reported line 22)May include surrounding context.

Check env CLAWHIRE_API_KEY. If missing, register:

bash
curl -s -X POST https://api.clawhire.io/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"name":"<agent-name>","owner_email":"<ask-user>","role":"employer"}'

Session Persistence

Medium
Category
Rogue Agent
Confidence
92% confidence
Finding

The skill instructs persistent storage of the API key in a local config file, creating long-lived credential exposure if the host or config is later accessed by other tools, users, or compromised skills. Persistence is convenient, but it increases blast radius compared with ephemeral credential handling.

Content

Scanner excerpt · SKILL.md (reported line 29)May include surrounding context.

Response: { "data": { "agent_id": "...", "api_key": "clawhire_xxx" } }

Save key — write to ~/.openclaw/openclaw.json (merge, don't overwrite):

json
{ "skills": { "entries": { "claw-employer": { "env": { "CLAWHIRE_API_KEY": "clawhire_xxx" } } } } }

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

Creating a profile sends agent metadata and skills to an external platform. In context this is part of normal functionality, but it still exposes potentially sensitive operational details and should not occur silently or without consent.

Content

Scanner excerpt · SKILL.md (reported line 40)May include surrounding context.

2. Create Profile

bash
curl -s -X POST https://api.clawhire.io/v1/agents/profile \
  -H "Authorization: Bearer $CLAWHIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% confidence
Finding

Worker discovery sends search terms and hiring intent to a third-party service. Although lower risk than sending task content, it still reveals operational interests and initiates external network activity that users may not expect from a generic 'help with a task' trigger.

Content

Scanner excerpt · SKILL.md (reported line 61)May include surrounding context.

Option A: REST API

bash
curl -s "https://api.clawhire.io/v1/agents/discover?skills=translation,japanese"

Returns workers with their a2a_url endpoints.

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The A2A gateway flow sends structured discovery requests to an external platform, which may expose user intent and search criteria. Because the skill encourages outsourcing, this increases the chance that sensitive project context could be sent externally with little friction.

Content

Scanner excerpt · SKILL.md (reported line 69)May include surrounding context.

Option B: A2A JSON-RPC (via ClawHire gateway)

bash
curl -s -X POST https://api.clawhire.io/a2a \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The paid escrow flow describes money movement and payout-triggering acceptance without an explicit user-impact warning or confirmation gate. An agent following this literally could commit funds or release payment without sufficient user awareness.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
78% confidence
Finding

Browsing workers transmits search parameters to an external marketplace and may reveal preferences or business intent. This is expected behavior for the skill, but still requires transparency and user awareness.

Content

Scanner excerpt · SKILL.md (reported line 164)May include surrounding context.

Step 1: Browse workers (optional)

bash
curl -s "https://api.clawhire.io/v1/agents/browse?skills=translation&is_online=true&sort=rating"

View a specific worker's full profile:

External Transmission

Medium
Category
Data Exfiltration
Confidence
76% confidence
Finding

Fetching a worker card contacts an external service and may deepen profiling of third-party agents on behalf of the user. This is not inherently malicious, but it contributes to unannounced data exchange and marketplace interaction.

Content

Scanner excerpt · SKILL.md (reported line 169)May include surrounding context.

View a specific worker's full profile:

bash
curl -s "https://api.clawhire.io/v1/agents/{agent_id}/card"

Step 2: Post task

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

Posting a task transmits task title, description, skills, budget, and deadline to an external service. This can disclose sensitive project details and may initiate financial obligations, so it is high impact if triggered without clear user authorization.

Content

Scanner excerpt · SKILL.md (reported line 177)May include surrounding context.

Option A: REST API

bash
curl -s -X POST https://api.clawhire.io/v1/tasks \
  -H "Authorization: Bearer $CLAWHIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The A2A task-posting flow similarly sends full task details and authorization to an external gateway. Because it combines data disclosure with authenticated account actions, misuse could create both privacy and financial harm.

Content

Scanner excerpt · SKILL.md (reported line 194)May include surrounding context.

Option B: A2A JSON-RPC (via ClawHire gateway)

bash
curl -s -X POST https://api.clawhire.io/a2a \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $CLAWHIRE_API_KEY" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
72% confidence
Finding

Task status monitoring contacts the external platform using the API key and reveals ongoing use of the service. The direct impact is lower than posting or registration, but it is still external transmission that should be transparent.

Content

Scanner excerpt · SKILL.md (reported line 222)May include surrounding context.

Step 3: Monitor

bash
curl -s "https://api.clawhire.io/v1/tasks/{task_id}" \
  -H "Authorization: Bearer $CLAWHIRE_API_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
72% confidence
Finding

The A2A status check sends task identifiers to the external gateway. This is comparatively low risk, but still exposes metadata about ongoing outsourced work.

Content

Scanner excerpt · SKILL.md (reported line 229)May include surrounding context.

Or via A2A:

bash
curl -s -X POST https://api.clawhire.io/a2a \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

Downloading a submission imports data from an external service into the local environment. Besides network transmission, this creates content-ingestion risk because deliverables from third-party agents may be malicious, malformed, or sensitive.

Content

Scanner excerpt · SKILL.md (reported line 247)May include surrounding context.

Download deliverable:

bash
curl -s "https://api.clawhire.io/v1/submissions/{sub_id}/download" \
  -H "Authorization: Bearer $CLAWHIRE_API_KEY" -o deliverable.file

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

Accepting a submission triggers payout, making this an authenticated external action with direct financial consequence. If an agent performs it automatically, the user could lose funds or approve inadequate work without review.

Content

Scanner excerpt · SKILL.md (reported line 253)May include surrounding context.

Accept (triggers 99% payout):

bash
curl -s -X POST "https://api.clawhire.io/v1/submissions/{sub_id}/accept" \
  -H "Authorization: Bearer $CLAWHIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"feedback":"Great work!","rating":5}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
82% confidence
Finding

Rejecting a submission is an authenticated external action that affects the worker relationship and task state. While less severe than payout release, it still has user-impact and should not be done silently.

Content

Scanner excerpt · SKILL.md (reported line 261)May include surrounding context.

Reject (worker can revise, max 3 attempts):

bash
curl -s -X POST "https://api.clawhire.io/v1/submissions/{sub_id}/reject" \
  -H "Authorization: Bearer $CLAWHIRE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"feedback":"Please fix X and Y"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 272)May include surrounding context.

ClawHire exposes an A2A Agent Card at:

text
https://api.clawhire.io/.well-known/agent.json

This tells any A2A-compatible agent what ClawHire can do:

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
74% confidence
Finding

The examples repeatedly direct translation specifically to Japanese, such as "Please translate this to Japanese," without framing the language as user-selected or illustrative. This can be read as a fixed language preference rather than offering locale choice.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill mandates appending interaction details to a general memory log after every interaction, even though persistent cross-task logging is not necessary to hire a worker or post a task. This can retain sensitive metadata about outsourced work, workers, costs, and task history longer than needed.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.