Back to skill

Security audit

TWZRD Preflight for ClawRouter

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its payment-safety purpose, but it needs review because it recommends unpinned npm execution in a payment-adjacent workflow and includes an ambiguous command-execution instruction.

Review before installing. Prefer pinned package versions or a lockfile-controlled install, use a dedicated low-balance wallet, keep the gate in enforce mode unless you explicitly accept bypass risk, point `CLAWROUTER_PROXY_BASE` only at a proxy you control, and do not let an agent execute `next_action.command` unless the command is locally derived and explicitly approved.

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
SKILL.md:33
Finding

Unpinned npm Packages Executed Through npx

Content
View full analysis
--pubkey 9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf' ); ``` ```bash # SKILL.md:753 npx clawhub install twzrd-clawrouter ``` ### Technical Analysis The documented workflow tells users to download and execute npm packages through `npx` without pinning all packages to exact, audited versions. In particular: - `clawhub` has no version constraint. - `tsx` has no version constraint. - `twzrd-receipt-verifier@^1.3.0` uses a caret range and can resolve to a later compatible release. The project contains no package manifest or lockfile that fixes these tools and their transitive dependencies to reviewed versions. Consequently, the code executed by these commands can change after the Skill has been audited. This creates a supply-chain trust boundary in which package maintainers, compromised publisher accounts, registry infrastructure, or compromised transitive dependencies can affect the executable payload. This is particularly significant because the Skill operates in the context of cryptocurrency payment routing and wallet-backed proxy software. Although the audited TypeScript does not read private keys or directly sign transactions, an npm package executed by `npx` runs with the permissions of the invoking user and is not constrained by the Skill's declared TypeScript behavior. ### Attack Path 1. An attacker compromises a referenced npm package, its publisher account, or one of its resolved dependencies. 2. The attacker publishes a malicious version that remains elig ...[truncated 1323 chars]
Remediation
View remediation
install twzrd-clawrouter npx tsx@ example.ts npx twzrd-receipt-verifier@1.3.0 --pubkey 9V6Pn19kiUA5Rn6JpQfNduanvGt2aXGwsarosNfa2Ldf ``` 2. Add a `package.json` and committed lockfile containing exact reviewed dependency resolutions. Install with: ```bash npm ci ``` 3. Prefer invoking locally installed, lockfile-controlled binaries rather than allowing `npx` to download packages on demand: ```bash npm exec --offline -- tsx example.ts ``` 4. Record and verify package integrity metadata or trusted release signatures before execution. Document the expected package version, registry origin, and integrity hash. 5. Review transitive dependencies and package lifecycle scripts. Where compatible with the required package, install using `--ignore-scripts` and explicitly run only the audited entry point. 6. Replace the caret constraint on the receipt verifier with an exact version. Upgrade it only after reviewing and testing the new artifact. 7. Run payment-related tooling under a dedicated, least-privileged operating-system account with no access to valuable wallet secrets or unrelated credentials. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • 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 (28)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Both checks are the rule, not just the first. `example.ts` implements both as of 0.2.1; through 0.2.0 it performed only step 1 while this document called both m

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Both checks are the rule, not just the first. `example.ts` implements both as of 0.2.1; through 0.2.0 it performed only step 1 while this document called both m

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Both checks are the rule, not just the first. `example.ts` implements both as of 0.2.1; through 0.2.0 it performed only step 1 while this document called both m

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Both checks are the rule, not just the first. `example.ts` implements both as of 0.2.1; through 0.2.0 it performed only step 1 while this document called both m

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
97% confidence
Finding

The skill includes executable examples with network egress and environment-variable use, but it does not declare a formal tool scope such as permissions or allowed-tools in the skill front matter. That mismatch can cause hosts or reviewers to underestimate what the skill can access, increasing the risk of unreviewed outbound requests or environment-dependent behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger list contains broad phrases like blockrun trust, preflight claw, and surf data safe, which could match generic user requests unrelated to this skill. Overbroad activation can cause the skill to insert itself unexpectedly into conversations or workflows, increasing the chance of unwanted network calls or steering user actions.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
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.

Content

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

md
Positioning: L7 trust annotation over L4 routing (ClawRouter local smart router + Surf marketplace + 55+ models). Does not replace ClawRouter; gates before it.

ClawRouter: local <1ms routing, wallet sig auth, x402 USDC (Base primary + Solana SVM paths via sol.blockrun.ai), bundled Surf skill (83+ endpoints (see skills/surf/SKILL.md for current catalog) for CEX/DEX/on-chain SQL/pred markets/wallet intel), image/video/voice. One install for OpenClaw (plugin), Claude Code (MCP), standalone. No accounts/keys for the router itself.

No API key for TWZRD preflight. Free tier is curl.

Skill Enumeration

Medium
Category
Agent Snooping
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.

Content

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

md
Positioning: L7 trust annotation over L4 routing (ClawRouter local smart router + Surf marketplace + 55+ models). Does not replace ClawRouter; gates before it.

ClawRouter: local <1ms routing, wallet sig auth, x402 USDC (Base primary + Solana SVM paths via sol.blockrun.ai), bundled Surf skill (83+ endpoints (see skills/surf/SKILL.md for current catalog) for CEX/DEX/on-chain SQL/pred markets/wallet intel), image/video/voice. One install for OpenClaw (plugin), Claude Code (MCP), standalone. No accounts/keys for the router itself.

No API key for TWZRD preflight. Free tier is curl.

Skill Enumeration

Medium
Category
Agent Snooping
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.

Content

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

md
Positioning: L7 trust annotation over L4 routing (ClawRouter local smart router + Surf marketplace + 55+ models). Does not replace ClawRouter; gates before it.

ClawRouter: local <1ms routing, wallet sig auth, x402 USDC (Base primary + Solana SVM paths via sol.blockrun.ai), bundled Surf skill (83+ endpoints (see skills/surf/SKILL.md for current catalog) for CEX/DEX/on-chain SQL/pred markets/wallet intel), image/video/voice. One install for OpenClaw (plugin), Claude Code (MCP), standalone. No accounts/keys for the router itself.

No API key for TWZRD preflight. Free tier is curl.

Skill Enumeration

Medium
Category
Agent Snooping
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.

Content

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

md
Positioning: L7 trust annotation over L4 routing (ClawRouter local smart router + Surf marketplace + 55+ models). Does not replace ClawRouter; gates before it.

ClawRouter: local <1ms routing, wallet sig auth, x402 USDC (Base primary + Solana SVM paths via sol.blockrun.ai), bundled Surf skill (83+ endpoints (see skills/surf/SKILL.md for current catalog) for CEX/DEX/on-chain SQL/pred markets/wallet intel), image/video/voice. One install for OpenClaw (plugin), Claude Code (MCP), standalone. No accounts/keys for the router itself.

No API key for TWZRD preflight. Free tier is curl.

Skill Enumeration

Medium
Category
Agent Snooping
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.

Content

Scanner excerpt · example.ts (reported line 154)May include surrounding context.

ts
Positioning: L7 trust annotation over L4 routing (ClawRouter local smart router + Surf marketplace + 55+ models). Does not replace ClawRouter; gates before it.

ClawRouter: local <1ms routing, wallet sig auth, x402 USDC (Base primary + Solana SVM paths via sol.blockrun.ai), bundled Surf skill (83+ endpoints (see skills/surf/SKILL.md for current catalog) for CEX/DEX/on-chain SQL/pred markets/wallet intel), image/video/voice. One install for OpenClaw (plugin), Claude Code (MCP), standalone. No accounts/keys for the router itself.

No API key for TWZRD preflight. Free tier is curl.

Skill Enumeration

Medium
Category
Agent Snooping
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.

Content

Scanner excerpt · example.ts (reported line 444)May include surrounding context.

ts
Positioning: L7 trust annotation over L4 routing (ClawRouter local smart router + Surf marketplace + 55+ models). Does not replace ClawRouter; gates before it.

ClawRouter: local <1ms routing, wallet sig auth, x402 USDC (Base primary + Solana SVM paths via sol.blockrun.ai), bundled Surf skill (83+ endpoints (see skills/surf/SKILL.md for current catalog) for CEX/DEX/on-chain SQL/pred markets/wallet intel), image/video/voice. One install for OpenClaw (plugin), Claude Code (MCP), standalone. No accounts/keys for the router itself.

No API key for TWZRD preflight. Free tier is curl.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

Using npx clawhub install twzrd-clawrouter without pinning a version allows execution of whatever package version is current at install time. If the upstream package is compromised or changes behavior, consumers may run attacker-controlled code during installation.

Content

No source excerpt is available for this finding.

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

npx clawhub install twzrd-clawrouter

text

After install: restart your OpenClaw session (skills load at session start), then run the curl below to confirm it's working.

Note: the page may show `openclaw skills install twzrd-clawrouter` — that command does not exist. The correct install is `clawhub install` or `npx clawhub install` above.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

A second unpinned npx clawhub invocation repeats the supply-chain risk: consumers execute the latest available package rather than a reviewed version. This is especially sensitive because the command is part of setup guidance and may be followed blindly.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

npx tsx example.ts relies on a floating tsx package version, which can change over time or be compromised upstream. Running unpinned transient tooling is a common supply-chain execution risk because npx downloads and executes code immediately.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

This repeated unpinned npx tsx command carries the same transient-code execution risk as the earlier occurrence. Repetition increases exposure because users are more likely to copy one of the commands without reviewing dependency provenance.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

npx @blockrun/clawrouter executes a remote package without a pinned version, exposing users to upstream compromise or unexpected code changes. Because this package operates in a payment-routing context, compromise could have downstream effects on wallets, traffic, or spend behavior.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The documentation recommends npx twzrd-receipt-verifier without an exact version, so verification tooling itself is subject to supply-chain substitution. In a security control path, compromised verifier tooling can falsely attest receipts or exfiltrate data.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

This later unpinned npx @blockrun/clawrouter reference repeats the same remote-code execution risk in a wallet/payment-adjacent workflow. The operational context makes the impact more serious than generic developer tooling because the process may handle payment setup and local proxying.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

Another unpinned npx tsx example perpetuates the same supply-chain risk. Security documentation should not normalize floating executable dependencies, especially when the example performs live network operations.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

A repeated unpinned npx twzrd-receipt-verifier reference undermines the trustworthiness of the verification path. If an attacker compromises the package or registry resolution, they can subvert a control that users rely on as proof verification.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
93% confidence
Finding

The publish/consumer flow again recommends unpinned npx clawhub, creating repeatable supply-chain risk at installation time. Installer commands are particularly dangerous because they are executed before users understand the package contents.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
91% confidence
Finding

The example instructs users to run npx tsx without pinning a version, which causes execution of whatever package version is current at install time. In a security-sensitive payment-gating skill, that creates a supply-chain risk where a compromised or breaking upstream release could execute arbitrary code or alter behavior during local runs.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding

The instructions reference npx @blockrun/clawrouter without a pinned version, so users may install and execute an unreviewed latest release from the registry. Because ClawRouter is a local payment proxy that handles wallet auth and x402 settlement, a malicious or compromised update could directly affect funds flow, request routing, or credential handling.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.