Back to skill

Security audit

Agent Outlier

Security checks for vulnerabilities and agentic risk

Overview

This skill is for an on-chain paid game and is mostly disclosed, but it gives broad wallet-signing authority to unpinned code and includes an unbounded paid play loop.

Install only if you understand this can spend real ETH on Base mainnet. Use a dedicated low-balance wallet, pin and audit dependency versions, avoid the continuous play loop, and require explicit confirmation and spending limits before any commit, reveal, finalize, claim, or playRound action.

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 (2)

T08 · Insecure Dependencies

Error
Location
SKILL.md:42
Finding

Unpinned Third-Party SDK Receives Access to a Mainnet Wallet Signer

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:174
Finding

Unbounded Autonomous Loop Can Repeatedly Spend Mainnet Funds

Content
View full analysis
setTimeout(r, 30000)); // wait 30s on error } } } playForever(player); ``` ### Technical Analysis The example continuously invokes `player.playRound` inside an unconditional `while (true)` loop. Each successful round can perform multiple Base mainnet transactions and incur both a non-refundable entry fee and gas costs. There is no maximum round count, cumulative-spend limit, gas-price ceiling, wallet-balance reserve, execution deadline, cancellation signal, or per-round user confirmation. Exceptions only introduce a 30-second delay before retrying, so persistent errors or unexpected SDK behavior do not safely terminate execution. Because the Skill explicitly states that entry fees are non-refundable after commitment, this pattern creates direct and potentially continuing financial exposure. ### Attack Path 1. A user configures a funded Base mainnet wallet and starts the documented `playForever` example. 2. The loop invokes `player.playRound(TIER.NANO, picks)` without requesting further approval. 3. Each iteration signs and submits paid commit, reveal, finalize, and potentially claim transactions. 4. After a completed round, the loop immediately begins another round. 5. If an error occurs, execution waits for 30 seconds and retries rather than st ...[truncated 901 chars]
Remediation
View remediation
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (2)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description uses broad trigger phrases such as 'outlier', 'arena', 'commit', 'reveal', and 'finalize', which can match ordinary crypto, gaming, or governance conversations that are not requests to use this specific skill. Because this skill can sign paid on-chain transactions using a configured private key, accidental invocation increases the chance of unintended wallet actions and financial loss.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The continuous-play example implements an infinite loop that repeatedly calls a paid transaction flow (playRound) without a prominent warning, budget cap, stop condition, or human confirmation. In this skill's context, each iteration can spend ETH entry fees and gas on Base mainnet, so users may unknowingly authorize unbounded financial loss if the pattern is copied or automated by an agent.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.