Back to skill

Security audit

easyclaw

Security checks for vulnerabilities and agentic risk

Overview

This EasyClaw trading skill is mostly transparent about what it does, but it includes high-impact live trading automation and broad account-control commands that need careful review before use.

Install only if you intend to grant this skill live trading authority. Use devnet or dry-run first, set a finite --max-orders limit, avoid arbitrary API/WS endpoints, keep API tokens scoped and separate, and review backend control commands before letting an agent invoke them. Treat wallet paths and strategy files saved by onboarding as sensitive local configuration.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/realtime-agent.js:428
Finding

Unauthenticated WebSocket Signals Can Trigger Real Financial Transactions

Content
View full analysis
{ openedAt = Date.now(); state.reconnectAttempts = 0; console.log(`[info] websocket connected: ${endpoint}`); socket.send( JSON.stringify({ type: "subscribe", channel: config.channel }) ); }); socket.on("message", (raw) => { let envelope; try { envelope = JSON.parse(String(raw)); } catch (_err) { return; } const signals = signalItemsFromEnvelope(envelope); for (const signal of signals) { const signalAgent = String(signal.agent_name || "").trim(); const side = normalizeSignalSide(signal.side); const confidence = toNumber(signal.confidence, 0); const ts = Math.floor(toNumber(signal.ts, Math.floor(Date.now() / 1000))); if (!side) { continue; } if (config.agentNameFilter && signalAgent !== config.agentNameFilter) { continue; } if (confidence < config.minConfidence) { continue; } enqueueSignalExecution(signal, side, confidence, ts, config, state, userMargin); } }); ``` The execution branch places a real order unless dry-run mode was explicitly enabled: ```js if (config.dryRun) { console.log(`[dry-run] node scripts/order-execute.js ${orderArgs.join(" ")}`); } else { const result = await executeOrder(orderArgs); if (result.stdout.trim()) { process.stdout.write(result.stdout); } if (result.stderr.trim()) { process.stderr.write(result.stderr); } } ...[truncated 4071 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/backend-common.js:12
Finding

Bearer Tokens Can Be Sent to Arbitrary or Plaintext API Endpoints

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (47)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The documented websocket watch capability allows subscription to arbitrary channels and generic event monitoring, which exceeds the narrowly described balance/order functionality. In this context, undocumented event-stream monitoring can expose sensitive backend data flows or be repurposed as a trigger surface for automated actions, making the understated capability risky.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The documented websocket watch capability allows subscription to arbitrary channels and generic event monitoring, which exceeds the narrowly described balance/order functionality. In this context, undocumented event-stream monitoring can expose sensitive backend data flows or be repurposed as a trigger surface for automated actions, making the understated capability risky.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The documented websocket watch capability allows subscription to arbitrary channels and generic event monitoring, which exceeds the narrowly described balance/order functionality. In this context, undocumented event-stream monitoring can expose sensitive backend data flows or be repurposed as a trigger surface for automated actions, making the understated capability risky.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The documented websocket watch capability allows subscription to arbitrary channels and generic event monitoring, which exceeds the narrowly described balance/order functionality. In this context, undocumented event-stream monitoring can expose sensitive backend data flows or be repurposed as a trigger surface for automated actions, making the understated capability risky.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documented websocket watch capability allows subscription to arbitrary channels and generic event monitoring, which exceeds the narrowly described balance/order functionality. In this context, undocumented event-stream monitoring can expose sensitive backend data flows or be repurposed as a trigger surface for automated actions, making the understated capability risky.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Backend endpoint source: `EASYCLAW_API_BASE_URL` / `EASYCLAW_WS_URL` (or alias vars in `backend-common.js`).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Backend endpoint source: `EASYCLAW_API_BASE_URL` / `EASYCLAW_WS_URL` (or alias vars in `backend-common.js`).

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/backend.js`: backend REST API query helper

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/realtime-agent.js`: signal-driven auto-order loop

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- `scripts/onboard.js`: interactive onboarding flow (wallet selection, registration wait, strategy capture, autotrade kickoff)

Known Vulnerable Dependency: bigint-buffer==1.1.5 — 1 advisory(ies): CVE-2025-3194 (bigint-buffer Vulnerable to Buffer Overflow via toBigIntLE() Function)

High
Category
Supply Chain
Confidence
92% confidence
Finding

The lockfile includes bigint-buffer 1.1.5, which is flagged for a buffer overflow in toBigIntLE(). Even though package-lock.json is not executable code itself, pinning a known vulnerable version means the skill will install and use that version transitively, and malformed inputs reaching the vulnerable path could crash the process or potentially enable memory corruption in environments where the native path is exercised.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: ws==7.5.10 — 1 advisory(ies): CVE-2026-48779 (ws: Memory exhaustion DoS from tiny fragments and data chunks)

High
Category
Supply Chain
Confidence
90% confidence
Finding

The dependency tree contains ws 7.5.10 under jayson, and that version is reported vulnerable to memory-exhaustion denial of service from fragmented websocket traffic. In a DEX skill that may maintain network connections or process remote data, a websocket DoS can degrade availability and interrupt trading or balance checks.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: ws==8.19.0 — 2 advisory(ies): CVE-2026-45736 (ws: Uninitialized memory disclosure); CVE-2026-48779 (ws: Memory exhaustion DoS from tiny fragments and data chunks)

High
Category
Supply Chain
Confidence
94% confidence
Finding

The top-level ws 8.19.0 is flagged for both uninitialized memory disclosure and memory-exhaustion denial of service. In a user-facing trading skill that may connect to Solana/EasyClaw websocket endpoints, these issues are more concerning because persistent network connectivity is core functionality, so exploitation could expose process memory or disrupt order submission and balance-monitoring availability.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: ws==8.19.0 — 2 advisory(ies): CVE-2026-45736 (ws: Uninitialized memory disclosure); CVE-2026-48779 (ws: Memory exhaustion DoS from tiny fragments and data chunks)

High
Category
Supply Chain
Confidence
97% confidence
Finding

The analysis indicates resolution to ws 8.19.0, which is affected by memory disclosure and denial-of-service advisories. Because this skill includes websocket-related scripts and likely maintains live connections for market data or automation, an attacker or malicious endpoint could potentially crash the process or expose memory contents during network handling.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation exposes capabilities that materially exceed the declared scope of the skill, including backend administration, strategy/session management, WebSocket control paths, autotrading, and onboarding flows. This is dangerous because downstream agents may select and trust the skill for limited order/balance tasks while actually gaining instructions for much broader and more sensitive actions, increasing the chance of unauthorized trading, control-plane misuse, or destructive operational actions.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The backend command set includes authenticated controls for agent creation, session start/stop, strategy publication, risk changes, and kill-switch operations, all of which exceed the stated purpose of submitting user orders and checking balances. These capabilities could be misused by an agent or operator to alter live trading behavior, disable operations, or modify account-level automation under the guise of a limited-scope skill.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The autotrade and onboarding sections describe automation that can directly lead to live order execution and persistent strategy-driven trading, which goes far beyond a simple user-facing order/balance helper. In skill ecosystems, understated autonomous trading behavior is particularly risky because an agent may invoke it without the user understanding that funds can be committed continuously after initial setup.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script exposes a much broader administrative surface than the stated skill purpose of submitting EasyClaw orders and checking balances. It includes agent creation, strategy creation/publishing, owner rebinding, session lifecycle management, and auth flows, which materially expand what an agent can do if this skill is invoked or delegated unexpectedly.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The presence of risk-administration and kill-switch capabilities is high impact because these operations can alter safety controls or halt multiple agents, yet they are bundled into a skill described as a DEX trading helper. In an agent setting, overbroad access like this can be triggered by prompt confusion, misuse, or malicious delegation, causing account-wide operational disruption.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The backend <command> [options...] interface exposes a generic pass-through to scripts/backend.js, enabling callers to invoke arbitrary backend subcommands outside the narrow manifest scope. In a trading/wallet environment, this is dangerous because it can grant access to sensitive state or privileged operations not anticipated by users or higher-level policy.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The wrapper advertises an autotrade capability that can initiate autonomous trading behavior beyond the stated purpose of user-facing order and balance actions. In a financial skill context, autonomous execution is especially dangerous because it can place orders repeatedly or based on streaming inputs without granular user intent for each trade.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
84% confidence
Finding

The script reads and writes a local .env file and persists KEYPAIR_PATH/ANCHOR_WALLET, effectively enumerating and storing references to sensitive wallet credentials. In this context, that increases the attack surface around private key material because the skill scans for wallet locations, records them in project state, and reuses them for automated trading flows.

Content

Scanner excerpt · scripts/onboard.js (reported line 15)May include surrounding context.

js
const { parseArgs } = require("./common");

const SKILL_DIR = path.join(__dirname, "..");
const ENV_PATH = path.join(SKILL_DIR, ".env");
const STRATEGY_DIR = path.join(SKILL_DIR, "state", "strategies");

function usage() {

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill declares extensive environment and network dependencies, including wallet paths and API tokens, but does not define an explicit tool scope such as permissions or allowed-tools. This creates an authorization gap where an agent may invoke networked or credentialed operations without clear policy boundaries, increasing the risk of unintended order placement, data exfiltration, or unsafe runtime behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The agent-facing interface advertises capabilities materially broader than the stated skill scope, including authenticated control-plane actions such as agent/strategy management, risk controls, kill-switch operations, and realtime monitoring. This kind of scope inflation is dangerous because downstream agents may rely on the interface text as authority and invoke sensitive actions that were not clearly declared, reviewed, or constrained by the manifest.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The package exposes scripts such as backend, watch, autotrade, and onboard that go beyond the stated user-facing order and balance functionality. In a security review, this capability mismatch increases attack surface and may enable unexpected network connectivity, automation, or account lifecycle actions that users and integrators do not anticipate.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/onboard.js:84

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/realtime-agent.js:177