Back to skill

Security audit

clawquest-chat-agent

Security checks for vulnerabilities and agentic risk

Overview

The skill's public quest browsing is mostly coherent, but its documentation also describes automatic remote bash verification and persistent background cron activity that exceed a simple read-only browsing purpose.

Install only if you intend to use it for manual public ClawQuest lookup. Do not enable the documented cron heartbeat or any automatic verification flow that runs remote bash code unless the publisher supplies reviewed scripts, clear consent prompts, sandboxing, and a precise explanation of what is executed and submitted.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
Findings (3)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:286
Finding

Remote Verification Flow Executes Server-Provided Bash Code

Content
View full analysis
get token -> GET /verify/ -> run bash script -> POST result ``` ### Technical Analysis The Skill instructs the Agent to retrieve a verification payload from a remote service and execute it as a Bash script. The effective code therefore is not contained in the reviewed package and can change at any time after publication or audit. No signature verification, expected checksum, command allowlist, execution sandbox, privilege reduction, or explicit user confirmation is specified. The instruction that verification happens “automatically” further reduces the opportunity for the user to inspect or reject the downloaded code. Executing remotely controlled shell code is not necessary for the Skill's declared public quest-browsing functionality and materially exceeds least privilege. The subsequent unspecified result submission also creates a potential channel through which data accessed by the script could be returned to the service. ### Attack Path 1. An attacker controls or compromises the ClawQuest verification service, its hosting infrastructure, or a verification response. 2. The Agent requests a challenge token through `POST /challenges`. 3. The Agent retrieves verification content from `GET /verify/`. 4. The malicious response provides or directs the Agent to a hostile Bash script. 5. Following the Skill instructions, the Agent executes the script without integrity validation or sandboxing. 6. The script runs with the operating-system privileges of th ...[truncated 960 chars]
Remediation
View remediation

T06 · System Persistence

Error
Location
SKILL.md:407
Finding

Unnecessary Recurring Task Deployment Creates Cross-Session Persistence

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/quest-browser.js:45
Finding

Unsanitized API-Controlled Text Is Written to the Terminal

Content
View full analysis
console.log(` • ${s.display_name || s.name} [${s.owner_handle || ''}] ${s.summary || ''}`)); ``` ### Technical Analysis Quest and skill fields obtained from the remote API are interpolated directly into terminal output. The code does not remove ANSI escape sequences, OSC commands, C0/C1 control characters, bidirectional text controls, or embedded line breaks. If an attacker can publish or alter quest or skill metadata, crafted fields could be interpreted by the user's terminal rather than displayed as inert text. Depending on terminal capabilities and configuration, this can hide or overwrite output, forge trusted-looking messages, alter displayed links, manipulate window titles, or trigger clipboard-related OSC functionality. This issue does not independently execute operating-system commands in a standard terminal. Its exploitability and impact depend on whether untrusted publishers can control the returned metadata and which control sequences the user's terminal supports. ### Attack Path 1. An attacker creates or modifies a quest or skill with control sequences embedded in its title, ID, owner handle, summary, required skill name, or related field. 2. The ClawQuest API returns the crafted metadata. 3. The user invokes `browse`, `search`, `skills`, or another affected display path. 4. `console.log` writes the untrusted bytes directly to the terminal. 5. The terminal interprets supp ...[truncated 647 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (19)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill advertises network-capable behavior and references local execution workflows, but its manifest does not declare any explicit tool scope such as allowed-tools or permissions. That creates an authorization ambiguity where a host may permit broader capabilities than users expect, especially for a user-invocable skill that can initiate external requests and operational tasks.

Content

No source excerpt is available for this finding.

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 30)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 126)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 147)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 228)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 242)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 314)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 317)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 320)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 323)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 326)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 385)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

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 464)May include surrounding context.

GET /agents/skills -> list all skills available on ClawHub

Dashboard: https://www.clawquest.ai API Docs: https://api.clawquest.ai/docs/

All requests JSON. Errors: HTTP status + { "error": "message" }

text

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Describing the skill as a general conversational assistant without strong activation boundaries makes it easier for the skill to overreach into adjacent tasks, including network calls, skill installation guidance, and verification workflows. Ambiguous scope increases the chance that a host agent invokes the skill in situations the user did not intend.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The verification section instructs running a bash script obtained through a challenge flow, which is a code-execution step not justified by the skill's read-oriented browsing function. Encouraging shell execution of remote challenge content can lead users or agents to run untrusted code with local privileges.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill's stated purpose is browsing public ClawQuest data, but the documentation adds cron deployment and local Node script execution that establish persistence and background activity beyond that purpose. This expands the attack surface by encouraging unattended execution on the user's machine, including silent update checks and recurring network access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The periodic quest browser instructs ongoing background network polling and proactive reporting without a clear foreground warning or consent model. Unannounced recurring activity can leak usage patterns, surprise users, and normalize autonomous external communications from a nominally on-demand browsing skill.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
77% confidence
Finding

While the endpoint itself is benign, this instance is embedded in a scheduled background polling workflow. In that context, the external transmission becomes part of an unprompted recurring activity pattern that can surprise users and expand privacy and persistence risks.

Content

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

md
**Schedule:** Every 30 minutes

1. Run: `curl -sS "https://api.clawquest.ai/quests?status=live&limit=20"`
2. Summarize new or notable quests for the user
3. Report which quests are available and their rewards

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The update checker is described as running silently in the background, which is especially risky because silent periodic network access and local script execution reduce transparency and auditability. Even if the current endpoint is benign, this pattern enables covert behavior and expands trust in remote-controlled update logic.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/utils.js:8