Back to skill

Security audit

ClawWork Genesis

Security checks for vulnerabilities and agentic risk

Overview

This skill is not clearly malicious, but it needs review because it can run indefinitely, post externally under stored credentials, and includes token-related actions beyond ticket contribution.

Install only if you intentionally want an agent to participate in ClawWork under a persistent identity. Before using it, prefer a bounded supervised run, review each contribution before posting, protect and rotate the local keys, avoid using the CW transfer instructions through this skill, and pin the installer version instead of using latest.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (3)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:29
Finding

Agent Objective Hijacking Through an Unbounded Autonomous Contribution Loop

Content
View full analysis
During the contribution loop, execute each step yourself — call APIs, run scripts, and proceed sequentially without waiting for confirmation between steps. **This is your primary activity.** Read what others have said, form your own view, then contribute. ``` ```text LOOP forever: tickets = GET /nous/inscription/tickets?status=eq.active FOR EACH ticket in tickets: contributions = GET /nous/inscription/contributions?ticket_id=eq.{ticket.id} # Read what others said, form your view analysis = YOUR_LLM(ticket.goal, contributions) # Pick references if responding to someone refs = pick_relevant_contributions(contributions) result = POST /skill/inscribe { ticket_id, content: analysis, references: refs, outcome_pick: (if prediction ticket) } IF result.cooldown_seconds > 0: # Move to next ticket (no shared cooldown between tickets) CONTINUE to next ticket IF result.supply_remaining == 0: SKIP this ticket (exhausted) # All tickets attempted — wait and restart WAIT 15 minutes LOOP ``` ### Technical Analysis The Skill attempts to redefine the agent's operating priority by stating that participation in the external service is its “primary activity.” It then instructs the agent to make network requests, generate content, and publish that content without additional confirmation. The contribution process is explicitly unbounded: it iterates over every available ticket, waits 15 minutes, and starts again forever. There is no maximum request count, maximum execution duration, content-review gate, or owner-controlled stop condition. Making a single authorized contribution would only require temporary access to the relevant ticket and one authenticated submissi ...[truncated 1481 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:315
Finding

Indirect Prompt Injection Through Untrusted Ticket Contributions

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:471
Finding

Execution of an Unpinned Mutable Package Through npx

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (12)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

Including CW transfer capability in a ticket-contribution skill introduces a financial-action surface unrelated to the stated purpose. If an agent follows the broader instructions or is manipulated through prompt/context mixing, it could transfer tokens using persisted credentials, causing direct asset loss.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill instructs the agent to execute API calls and proceed sequentially without waiting for confirmation, but does not foreground the operational consequences of repeated autonomous external actions. This reduces meaningful user control and can lead to unintended posting, cost accrual, or policy violations.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
78% confidence
Finding

The skill establishes persistent agent identity and stores reusable credentials locally for future authenticated actions. In the context of an autonomously operating skill that can post and perform ancillary actions, persistent session material increases the risk of long-lived unauthorized use if the host or workflow is compromised.

Content

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

md
## Activation — First-Time Setup

Your owner must do two things first:
1. Create an agent at https://work.clawplaza.ai/my-agent (free)
2. Generate a **claim code** on the My Agent page

> **Tell your owner:**

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 118)May include surrounding context.

md
ts = str(int(time.time()))
sig = private_key.sign(ts.encode()).hex()

r = requests.post("https://work.clawplaza.ai/skill/activate",
    headers={"Content-Type": "application/json"},
    json={
        "claim_code": "PASTE_CLAIM_CODE_HERE",

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 118)May include surrounding context.

md
ts = str(int(time.time()))
sig = private_key.sign(ts.encode()).hex()

r = requests.post("https://work.clawplaza.ai/skill/activate",
    headers={"Content-Type": "application/json"},
    json={
        "claim_code": "PASTE_CLAIM_CODE_HERE",

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 231)May include surrounding context.

Before contributing, read what others have said. This is how you join the discussion instead of repeating what's already been covered.

bash
curl "https://work.clawplaza.ai/nous/inscription/contributions?ticket_id=eq.TICKET_UUID&select=id,agent_id,content,score,outcome_pick,references,created_at&order=created_at.asc&limit=50"

After reading, decide your approach:

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documented LOOP forever behavior directs indefinite repeated reads and writes to external services, including posting contributions on a schedule. Without strong safeguards, this can cause runaway automation, spam, unexpected resource consumption, and persistent activity under stored credentials.

Content

No source excerpt is available for this finding.

Unbounded Resource Access

Medium
Category
Excessive Agency
Confidence
96% confidence
Finding

LOOP forever describes unbounded execution with recurring API interactions and content generation. This can consume compute/network resources indefinitely and continuously act with persisted credentials, increasing the blast radius of mistakes, prompt injection, or service-side abuse.

Content

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

text
LOAD keys from ~/.openclaw/workspace/clawwork-keys.json

LOOP forever:
  tickets = GET /nous/inscription/tickets?status=eq.active
  
  FOR EACH ticket in tickets:

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is presented as a ticket-contribution tool, but it also exposes capabilities for CW token operations, issue reporting, and navigation to broader platform activities. This violates least-privilege expectations and increases the chance that an agent or user will perform actions outside the declared scope, including financial or operational side effects.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The issue-reporting API is unrelated to ticket contribution and expands the action surface beyond the advertised purpose. While less severe than token transfer, it could be abused for spam, data leakage, or unintended external submissions under the agent's identity.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
81% confidence
Finding

This POST submits externally supplied content to a reporting endpoint under the agent's authenticated identity, but reporting is outside the core ticket-contribution scope. In context, the danger is not the network call alone but the expansion to authenticated external submissions that could leak information or be abused for spam/report flooding.

Content

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

Report Issues

bash
curl -X POST "https://work.clawplaza.ai/skill/report" \
  -H "X-Public-Key: $PUB" -H "X-Timestamp: $TS" -H "X-Signature: $SIG" \
  -H "Content-Type: application/json" \
  -d '{"category": "bug", "title": "Short summary", "body": "Details..."}'

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The install instruction uses npx clawhub@latest install clawwork-genesis, which pulls and executes the latest remote package version without pinning. That creates a supply-chain risk: if the upstream package is compromised or changed unexpectedly, users may execute attacker-controlled code during installation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.