Back to skill

Security audit

ClawFi

Security checks for vulnerabilities and agentic risk

Overview

The skill itself is a coherent ClawFi market-data API contract, but its documented installer uses a mutable npm latest package to modify multiple agent skill directories.

Review the installer before running it. Prefer a pinned, reviewed package version or a manual copy of the reviewed skill file into the intended agent directory. Do not submit proprietary trading research, private account data, or sensitive source material to ClawFi until you have verified the service operator, retention policy, and deployment origin.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
README.md:20
Finding
Unpinned npm Package Execution Through npx## Vulnerability Details **File Location**: `README.md`, line 20 **Vulnerability Type**: Supply-chain risk from executing an unpinned package release **Risk Level**: Medium **Vulnerable Code Snippet**: ```bash npx clawfi@latest install clawfi ``` ### Technical Analysis The documented installation command instructs users to execute the release currently associated with the npm `latest` tag. This tag is mutable and does not identify a specific, previously reviewed package version. The audited project contains only `README.md` and `skill.md`; it does not include the npm package manifest, lockfile, integrity hash, or installer implementation needed to verify the claim that the package only copies the Skill document. Consequently, the code ultimately executed by `npx` lies outside the reviewed artifact and may change after this audit. This does not establish that the current npm package is malicious. It creates a supply-chain vulnerability because compromise of the publisher account, package registry, release pipeline, or a future release could convert the documented installation process into arbitrary local code execution. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, or another component controlling the `clawfi` package. 2. The attacker publishes a malicious package version and assigns it to the `latest` distribution tag. 3. A user follows the README and runs `npx clawfi@latest install clawfi`. 4. `npx` retrieves and executes the attacker-controlled package code. 5. The malicious installer executes with the permissions of the invoking user and may access or alter resources available to that account. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the installing user's account. Depending on that account's permissions and environment, an attacker could read or modify user files, access locally available credentials and agent conf ...[truncated 792 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with an explicitly reviewed and immutable package version. 2. Provide the complete installer source and package manifest in the audited repository so its behavior can be reviewed. 3. Publish and document npm integrity information or cryptographic release signatures, and require verification before execution. 4. Pin dependencies and commit an appropriate lockfile for the installer implementation. 5. Avoid elevated execution and instruct users not to run the installer with `sudo` or an administrator account. 6. Where practical, offer a non-executable installation method that copies a reviewed `skill.md` directly into the appropriate directory. 7. Protect package publication with phishing-resistant multi-factor authentication, restricted release tokens, provenance attestations, and controlled CI-based publishing.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Skill Enumeration

Medium
Category
Agent Snooping
Content
The skill runs on these AI coding agents:

- **Cursor** — [Cursor](https://cursor.com) IDE. The skill is loaded from `~/.cursor/skills/clawfi/SKILL.md` and lets the Cursor agent read/write ClawFi context, observations, and signals.
- **Claude Code** — [Claude Code](https://claude.com/code) (Anthropic’s Claude in VS Code / JetBrains). The skill is loaded from `~/.claude/skills/clawfi/SKILL.md` so the agent can call the ClawFi API.
- **Codex** — [Codex](https://codex.com) (OpenAI’s coding agent). The skill is loaded from `$CODEX_HOME/skills/clawfi/SKILL.md` (default `~/.codex/skills/clawfi/SKILL.md`).
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
The skill runs on these AI coding agents:

- **Cursor** — [Cursor](https://cursor.com) IDE. The skill is loaded from `~/.cursor/skills/clawfi/SKILL.md` and lets the Cursor agent read/write ClawFi context, observations, and signals.
- **Claude Code** — [Claude Code](https://claude.com/code) (Anthropic’s Claude in VS Code / JetBrains). The skill is loaded from `~/.claude/skills/clawfi/SKILL.md` so the agent can call the ClawFi API.
- **Codex** — [Codex](https://codex.com) (OpenAI’s coding agent). The skill is loaded from `$CODEX_HOME/skills/clawfi/SKILL.md` (default `~/.codex/skills/clawfi/SKILL.md`).
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
The skill runs on these AI coding agents:

- **Cursor** — [Cursor](https://cursor.com) IDE. The skill is loaded from `~/.cursor/skills/clawfi/SKILL.md` and lets the Cursor agent read/write ClawFi context, observations, and signals.
- **Claude Code** — [Claude Code](https://claude.com/code) (Anthropic’s Claude in VS Code / JetBrains). The skill is loaded from `~/.claude/skills/clawfi/SKILL.md` so the agent can call the ClawFi API.
- **Codex** — [Codex](https://codex.com) (OpenAI’s coding agent). The skill is loaded from `$CODEX_HOME/skills/clawfi/SKILL.md` (default `~/.codex/skills/clawfi/SKILL.md`).
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
The skill runs on these AI coding agents:

- **Cursor** — [Cursor](https://cursor.com) IDE. The skill is loaded from `~/.cursor/skills/clawfi/SKILL.md` and lets the Cursor agent read/write ClawFi context, observations, and signals.
- **Claude Code** — [Claude Code](https://claude.com/code) (Anthropic’s Claude in VS Code / JetBrains). The skill is loaded from `~/.claude/skills/clawfi/SKILL.md` so the agent can call the ClawFi API.
- **Codex** — [Codex](https://codex.com) (OpenAI’s coding agent). The skill is loaded from `$CODEX_HOME/skills/clawfi/SKILL.md` (default `~/.codex/skills/clawfi/SKILL.md`).
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
The skill runs on these AI coding agents:

- **Cursor** — [Cursor](https://cursor.com) IDE. The skill is loaded from `~/.cursor/skills/clawfi/SKILL.md` and lets the Cursor agent read/write ClawFi context, observations, and signals.
- **Claude Code** — [Claude Code](https://claude.com/code) (Anthropic’s Claude in VS Code / JetBrains). The skill is loaded from `~/.claude/skills/clawfi/SKILL.md` so the agent can call the ClawFi API.
- **Codex** — [Codex](https://codex.com) (OpenAI’s coding agent). The skill is loaded from `$CODEX_HOME/skills/clawfi/SKILL.md` (default `~/.codex/skills/clawfi/SKILL.md`).
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Skill Enumeration

Medium
Category
Agent Snooping
Content
The skill runs on these AI coding agents:

- **Cursor** — [Cursor](https://cursor.com) IDE. The skill is loaded from `~/.cursor/skills/clawfi/SKILL.md` and lets the Cursor agent read/write ClawFi context, observations, and signals.
- **Claude Code** — [Claude Code](https://claude.com/code) (Anthropic’s Claude in VS Code / JetBrains). The skill is loaded from `~/.claude/skills/clawfi/SKILL.md` so the agent can call the ClawFi API.
- **Codex** — [Codex](https://codex.com) (OpenAI’s coding agent). The skill is loaded from `$CODEX_HOME/skills/clawfi/SKILL.md` (default `~/.codex/skills/clawfi/SKILL.md`).
Confidence
80% confidence
Finding
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Session Persistence

Medium
Category
Rogue Agent
Content
The skill runs on these AI coding agents:

- **Cursor** — [Cursor](https://cursor.com) IDE. The skill is loaded from `~/.cursor/skills/clawfi/SKILL.md` and lets the Cursor agent read/write ClawFi context, observations, and signals.
- **Claude Code** — [Claude Code](https://claude.com/code) (Anthropic’s Claude in VS Code / JetBrains). The skill is loaded from `~/.claude/skills/clawfi/SKILL.md` so the agent can call the ClawFi API.
- **Codex** — [Codex](https://codex.com) (OpenAI’s coding agent). The skill is loaded from `$CODEX_HOME/skills/clawfi/SKILL.md` (default `~/.codex/skills/clawfi/SKILL.md`).
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.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding
The README instructs users to execute `npx clawfi@latest install clawfi`, which fetches and runs the latest published package without pinning to a specific reviewed version. If the npm package is compromised, hijacked, or a malicious version is published, users and agents could execute attacker-controlled code during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
The publish/install guidance reinforces use of the moving `latest` tag for distribution, which increases supply-chain risk because consumers will execute whatever version is currently tagged. In the context of an agent skill installer that writes into agent skill directories, compromise could persistently affect agent behavior across supported platforms.

Unrestricted Tool Access

Medium
Category
Excessive Agency
Content
## Trust & safety (for installers)

- This skill exposes **write** endpoints (observe, signal, source, knowledge/block). The agent may invoke it when the user asks for market data read/write. To require explicit user approval for every write, installers can set **`disableModelInvocation: true`** for this skill so the model cannot call it autonomously.
- **Install behavior:** The `clawfi` npm package only copies this SKILL.md to the agent’s skill directory; it does not run any code that contacts the ClawFi API or other networks. All API calls are made by the agent using this contract and the base URL from the manifest.
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.

Static analysis

No suspicious patterns detected.