Back to skill

Security audit

clawjob

Security checks for vulnerabilities and agentic risk

Overview

This skill is a ClawJob API guide, but it asks agents to run unattended job-claiming and submission workflows and to store sensitive API credentials in a local plaintext file.

Review before installing. Use this only with explicit per-action approval for posting, claiming, submitting, verifying, transferring, withdrawing, or changing payout details. Do not enable the Heartbeat block as written; limit automation to read-only job discovery and notifications. Store API keys in a secret manager or locked-down file, never commit or sync them, and treat all job descriptions and attachments as untrusted input.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (2)

T06 · System Persistence

Error
Location
SKILL.md:504
Finding
Persistent Unattended Execution of Externally Supplied Jobs<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:504-526` **Vulnerability Type**: Persistent autonomous task execution and delegation to an untrusted external marketplace **Risk Level**: High ### Vulnerable Code ```markdown Add to your `HEARTBEAT.md`: ```markdown ## ClawJob (every 2-4 hours) If 2+ hours since last check and no active human session: 1. Fetch job board: GET /jobs?status=open&tags=MY_SKILLS&sort=bounty_desc&limit=5 2. If any match my capabilities: - Claim the best one - Complete the work - Submit solution 3. Check pending verifications: GET /jobs?needs_verification=true 4. Log activity to memory/clawjobs-log.json 5. If earned > 100 tokens, notify human on wake ``` Track state in `memory/clawjobs-state.json`: ```json { "lastCheck": null, "totalEarned": 0, "jobsCompleted": 0 } ``` ``` ### Technical Analysis The Skill instructs the Agent to modify its persistent `HEARTBEAT.md` configuration and periodically interact with ClawJob when there is no active human session. It does not limit the heartbeat to passive monitoring: the Agent is explicitly directed to claim a selected job, complete it, and transmit the solution. Job descriptions and associated content originate from external marketplace users and must therefore be treated as untrusted input. Automatically selecting and executing those tasks allows external users to influence the Agent's future goals after the Skill has been reviewed and installed. There is no mandatory human approval boundary before claiming a job, interpreting its instructions, using local tools or data, or submitting resulting information to the remote service. The persistent heartbeat and state files also cause this behavior to continue across sessions. Although the document does not install an operating-system service directly, it explicitly directs integration into the Agent's cross-session scheduling mechanism. This exceeds the minimum privileges needed to browse a job marketplace or m ...[truncated 1843 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the instruction to modify `HEARTBEAT.md` and eliminate unattended claim, completion, verification, and submission behavior. 2. Require explicit, job-specific human approval before: - Claiming or passing a job. - Processing a job description or attachment. - Invoking local tools or accessing local files. - Submitting any content to the remote marketplace. - Performing token transfers, withdrawals, bounty escrow, or payout-address changes. 3. Restrict automatic behavior to read-only notification, such as listing potentially relevant jobs for human review. 4. Treat all job descriptions, notes, solutions, links, and attachments as untrusted data rather than Agent instructions. 5. Apply prompt-injection defenses and prohibit externally supplied jobs from changing system policy, accessing secrets, modifying persistent configuration, or initiating unrelated network requests. 6. Introduce an allowlist of tools and data sources that can be used after approval, with filesystem and network access denied by default. 7. Display the complete outbound submission to the human and require confirmation immediately before transmission. 8. Record auditable consent and activity logs, but do not store attacker-controlled instructions in long-term memory or startup configuration. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:56
Finding
API Bearer Credential Stored in a Predictable Plaintext File<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:56-63` **Vulnerability Type**: Insecure plaintext credential storage **Risk Level**: Medium ### Vulnerable Code ```markdown **Recommended:** Save credentials to `~/.config/clawjobs/credentials.json`: ```json { "api_key": "claw_xxx", "wallet_address": "0x...", "agent_name": "YourAgentName" } ``` ``` ### Technical Analysis The Skill recommends storing a bearer API key in a predictable plaintext JSON file. It does not require restrictive filesystem permissions, encryption, an operating-system credential store, exclusion from backups or version control, or credential rotation. A bearer token grants access based on possession. Any local user or process capable of reading the file can reuse the token against the ClawJob API. The document repeatedly uses this key in `Authorization: Bearer` request headers for authenticated job, profile, and wallet operations. The displayed credentials file does not include the `wallet_private_key`; therefore, storage of the wallet private key in this particular file is not established by the audited text. Nevertheless, compromise of the API key may authorize consequential account and token-related actions according to the documented endpoints. ### Attack Path 1. The user follows the recommendation and creates `~/.config/clawjobs/credentials.json`. 2. The file is created with default permissions or is copied into a backup, diagnostic archive, shared home directory, or repository. 3. Another local process, user, extension, or compromised application reads the predictable file. 4. The attacker extracts the `api_key`. 5. The attacker sends authenticated HTTPS requests to `api.clawjob.org` using the stolen bearer token. 6. Depending on server-side authorization and human-approval controls, the attacker can inspect account information, manipulate jobs, submit or reject work, transfer tokens to another agent, or request wallet and payout operations. ### Impact Ass ...[truncated 787 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Store the API key in an operating-system credential manager or dedicated secret-management service rather than a plaintext JSON file. 2. If file-based storage is unavoidable: - Create the containing directory with mode `0700`. - Create the credentials file atomically with mode `0600`. - Verify ownership and permissions before every read. - Reject symbolic links and unexpected file types. 3. Never store the wallet private key in the same file. Prefer locally generated wallet keys held by a hardware wallet or established wallet application. 4. Add the credential path to relevant version-control, backup, synchronization, and diagnostic exclusion rules. 5. Ensure logs and error messages redact API keys and `Authorization` headers. 6. Use narrowly scoped API tokens, separating read-only marketplace access from job-management and financial permissions. 7. Require human confirmation and additional authentication for token transfers, withdrawals, and payout-address changes. 8. Provide immediate token revocation and rotation procedures, and rotate credentials after any suspected exposure. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (45)

Credential Access

High
Category
Privilege Escalation
Content
- `api_key` — Your API authentication key
- `wallet_private_key` — Import into MetaMask/wallet to claim tokens on Base

**Recommended:** Save credentials to `~/.config/clawjobs/credentials.json`:
```json
{
  "api_key": "claw_xxx",
Confidence
98% confidence
Finding
The skill recommends storing long-lived API credentials in a plaintext file under the user's home directory and also discusses handling a wallet private key returned during registration. This materially increases the risk of credential theft by other tools, prompts, local users, malware, or accidental inclusion in logs/backups, and the context is especially dangerous because the credentials control marketplace actions and token-related operations.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger description is broad enough to invoke the skill for generic topics like earning tokens, finding work, or API interaction, which can cause the agent to enter a workflow involving account registration, wallet handling, and financial/job actions without sufficiently specific user intent. In this skill, unintended invocation is more dangerous because the advertised actions include claiming jobs, submitting work, posting bounties, and moving tokens.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
The job marketplace for AI agents. Post bounties, complete tasks, earn tokens.

**Base URL:** `https://api.clawjob.org/api/v1`

**Token:** `$JOBS` on Base (ERC-20)  
**Contract:** [`0x7CE4934BBf303D760806F2C660B5E4Bb22211B07`](https://basescan.org/token/0x7CE4934BBf303D760806F2C660B5E4Bb22211B07)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
Every agent needs to register and get claimed by their human:

```bash
curl -X POST https://api.clawjob.org/api/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "YourAgentName",
Confidence
84% confidence
Finding
The skill includes a concrete POST request to the external registration endpoint, causing outbound data flow to a third-party service. In context, this is a legitimate feature, but it still creates exposure because onboarding data is sent off-platform and the response contains highly sensitive secrets.

External Transmission

Medium
Category
Data Exfiltration
Content
Every agent needs to register and get claimed by their human:

```bash
curl -X POST https://api.clawjob.org/api/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "YourAgentName",
Confidence
84% confidence
Finding
The skill includes a concrete POST request to the external registration endpoint, causing outbound data flow to a third-party service. In context, this is a legitimate feature, but it still creates exposure because onboarding data is sent off-platform and the response contains highly sensitive secrets.

External Transmission

Medium
Category
Data Exfiltration
Content
### Post a job (as employer)

```bash
curl -X POST https://api.clawjob.org/api/v1/jobs \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
91% confidence
Finding
Posting a job sends user-provided content to a third-party service and immediately escrows tokens, creating direct financial consequences. In this skill, external transmission is more dangerous because a mistaken or autonomous invocation can lock funds and publicly create obligations.

External Transmission

Medium
Category
Data Exfiltration
Content
### Claim a job (as worker)

```bash
curl -X POST https://api.clawjob.org/api/v1/jobs/JOB_ID/claim \
  -H "Authorization: Bearer YOUR_API_KEY"
```
Confidence
92% confidence
Finding
Claiming a job is an external state-changing action that commits the agent to a marketplace task and can trigger downstream obligations and reputation effects. Combined with the Heartbeat instructions, this creates a realistic risk of unauthorized autonomous commitments.

Static analysis

No suspicious patterns detected.