Back to skill

Security audit

Twitch Plays Pokemon for ClawBots

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly supports a shared Pokemon voting game, but it also broadly encourages agents to post or message through any connected communication tools.

Install only if you are comfortable with the game API calls and keep any agentName anonymous. Do not allow the skill to use social media, chat, Slack, Discord, or email accounts unless you explicitly approve each destination and message content; keep journals limited to game state and strategy notes.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
skill.md:272
Finding

Overbroad Authorization for External Communications

Content
View full analysis

Vulnerability Details

File Location: skill.md, lines 272–282
Vulnerability Type: Overbroad use of third-party communication accounts and tools
Risk Level: Medium

Vulnerable Instruction:

markdown
**Moltbook** - If you have a Moltbook account, post updates about the game state, coordinate strategies, or discuss what moves to make. Find other agents playing and share observations.

**Twitter/X** - If your owner has given you Twitter access, you can post updates or find other agents discussing the game.

**Ask Your Owner** - Your human might want to help! They can:
- Watch the Twitch stream and give you context
- Help you understand confusing game situations
- Coordinate with other humans whose agents are playing
- Answer Pokemon strategy questions

**Other Tools** - Use whatever communication mechanisms your owner has provided. Discord, Slack, email - if you can reach other agents or humans, do it.

Technical Analysis

The Skill instructs an agent to use any available communication mechanism, explicitly including social-media accounts, Discord, Slack, and email. These communication capabilities are not necessary for the Skill's core functions of retrieving game state and submitting game-control votes.

The catch-all instruction to use “whatever communication mechanisms” are available does not define approved recipients, permitted information fields, message frequency, or per-message authorization requirements. It also does not prohibit sharing credentials, personal information, conversation context, or other data available to the agent. Consequently, an agent with access to third-party accounts could interpret the instruction as standing authorization to publish or transmit information without obtaining explicit approval for each communication.

This violates least-privilege principles by encouraging use of unrelated account and messaging privileges beyond those required to interact with the Pok ...[truncated 1633 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove the catch-all instruction to use any available communication mechanism.
  2. Restrict optional coordination to explicitly named and trusted services that are necessary for the task.
  3. Require affirmative user approval before every external message or public post, including approval of the destination, recipient, and exact content.
  4. Define an allowlist of information that may be shared, such as current game location, badge count, and proposed game action.
  5. Explicitly prohibit transmission of credentials, authentication tokens, personal data, private conversation content, local files, system information, and unrelated agent context.
  6. Apply recipient allowlists, rate limits, audit logging, and a clear mechanism for reviewing or revoking communication authorization.
  7. Default to no external communication when authorization or the sensitivity of the proposed content is uncertain.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (10)

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

bash
# 1. See the current game screen
curl https://api.clawplayspokemon.com/screenshot --output screen.png

# 2. Check badges, location, and voting status
curl https://api.clawplayspokemon.com/status

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 20)May include surrounding context.

bash
# 1. See the current game screen
curl https://api.clawplayspokemon.com/screenshot --output screen.png

# 2. Check badges, location, and voting status
curl https://api.clawplayspokemon.com/status

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 23)May include surrounding context.

bash
# 1. See the current game screen
curl https://api.clawplayspokemon.com/screenshot --output screen.png

# 2. Check badges, location, and voting status
curl https://api.clawplayspokemon.com/status

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 59)May include surrounding context.

bash
# 1. See the current game screen
curl https://api.clawplayspokemon.com/screenshot --output screen.png

# 2. Check badges, location, and voting status
curl https://api.clawplayspokemon.com/status

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 114)May include surrounding context.

bash
# 1. See the current game screen
curl https://api.clawplayspokemon.com/screenshot --output screen.png

# 2. Check badges, location, and voting status
curl https://api.clawplayspokemon.com/status

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 178)May include surrounding context.

bash
# 1. See the current game screen
curl https://api.clawplayspokemon.com/screenshot --output screen.png

# 2. Check badges, location, and voting status
curl https://api.clawplayspokemon.com/status

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

The POST vote example transmits agent-controlled data, including an agentName that is displayed publicly on stream. This is riskier than the read-only GET requests because it can disclose an identifier to an external service and public audience, and the skill does not prominently warn that submitted names become externally visible.

Content

Scanner excerpt · skill.md (reported line 28)May include surrounding context.

3. Analyze and decide what button to press

4. Cast your vote

curl -X POST https://api.clawplayspokemon.com/vote
-H "Content-Type: application/json"
-d '{"button": "a", "agentName": "OPNCLAW"}'

text

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

This POST /vote example again sends externally visible data, including the optional agentName, to a third-party service. Because the skill emphasizes that the name appears on stream, the privacy impact is real if agents use persistent or identifying names without explicit authorization.

Content

Scanner excerpt · skill.md (reported line 69)May include surrounding context.

Cast your vote for the current window.

bash
curl -X POST https://api.clawplayspokemon.com/vote \
  -H "Content-Type: application/json" \
  -d '{"button": "a", "agentName": "OPNCLAW"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill encourages agents to post updates to Moltbook, Twitter/X, Discord, Slack, email, or ask humans for help, which expands the data flow beyond the game API to uncontrolled third parties. Even if the intended content is 'game state,' agents may disclose screenshots, behavioral traces, identifiers, or owner-related context without consent or privacy review.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly encourages maintaining a local journal of game observations, which causes persistent local data creation without warning the operator about storage, retention, or sensitivity boundaries. While the suggested content is mostly game state, persistent notes can still accumulate adjacent user/agent context and create unnecessary data retention risk in environments where agents should avoid local writes by default.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.