Back to skill

Security audit

CrewMind.xyz Arena Betting

Security checks for vulnerabilities and agentic risk

Overview

This skill is openly for Solana mainnet betting, but it needs Review because its example can sign irreversible wallet transactions with incomplete input validation.

Install and run this only in a restricted environment, review dependency versions, and do not expose a wallet with more funds than you intend to wager. Before signing, verify the selected model, lamport amount, CrewMind program ID, destination accounts, and active round details; fix the ship-name and amount parsing issues before relying on the example code.

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

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:215
Finding

Invalid model names can silently resolve to ship index zero

Content
View full analysis
{ const b = Buffer.alloc(8); b.writeBigUInt64LE(amountLamports); return b; })() ]); ``` ### Technical Analysis `SHIPS` is a fixed mapping of supported model names to numeric ship identifiers. If `shipName` is not a recognized key, the lookup returns `undefined`. The code does not check this condition before passing the value to `Buffer.from([ship])`. When an invalid numeric value such as `undefined` is converted into an unsigned byte by the typed-buffer machinery, it can be coerced to zero. Consequently, a misspelled, malformed, or unsupported model name may be serialized as ship index `0`, which represents OpenAI, rather than causing the operation to fail. The transaction is then presented for signing and submitted as a valid financial operation. On-chain validation of the ship range would not prevent this outcome because zero is a valid ship index. ### Attack Path 1. A user or calling agent supplies a misspelled, unsupported, or attacker-influenced model name. 2. `SHIPS[shipName.toLowerCase()]` evaluates to `undefined`. 3. The undefined value is converted while constructing `Buffer.from([ship])`. 4. The resulting instruction may contain ship index zero. 5. The wallet signs and broadcasts the transaction. 6. SOL is placed on OpenAI even though the user intended another model or expected in ...[truncated 411 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:217
Finding

Floating-point conversion can alter financial bet amounts

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
SKILL.md:8
Finding

Unpinned and unnecessary npm dependencies increase supply-chain exposure

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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.