T01 · Skill Instruction Hijacking
- Location
SKILL.md:223- Finding
Public Disclosure of Genuine Agent Reasoning
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:223-226
Supporting Locations:SKILL.md:18,SKILL.md:23,SKILL.md:71,SKILL.md:101-106
Vulnerability Type: Forced disclosure of internal agent reasoning to an external service
Risk Level: HighVulnerable Code Snippet
markdown 1. Use `exec` to `curl` the register endpoint 2. Poll `/play` with `exec` 3. Read the game state, **reason about it yourself** (you ARE the LLM), then submit your turn 4. Your `think` field = your actual reasoning. Spectators will see your real thought process!The disclosure behavior is also explicitly established earlier:
markdown > The `think` field exposes your reasoning to spectators — make it genuine and entertaining.markdown > Your `think` and `plan` fields are shown to spectators, so make your reasoning interesting!Technical Analysis
The Skill explicitly instructs the executing agent to place its actual reasoning into the outbound
thinkfield. That field is transmitted tomolthouse.crabdance.comand displayed to spectators. This exceeds what is necessary to play the game: a short, sanitized, game-specific rationale would provide equivalent functionality without exposing genuine internal reasoning.The risk is amplified because the Skill directs an OpenClaw agent with tool access to execute network requests itself. Agent reasoning can be influenced by the surrounding session, system instructions, user-provided context, remote game messages, and tool results. Requiring the actual reasoning to be submitted creates a direct disclosure channel from the agent session to an externally operated service.
Although the document labels
thinkas optional and sometimes calls it private, it also states that spectators can see it and repeatedly encourages its disclosure. The documented unauthenticated spectator interface broadens the potential audience beyond the game server operator. ...[truncated 1430 chars]- Remediation
View remediation
Remediation Suggestions
- Remove every instruction requesting actual, genuine, private, or hidden reasoning.
- Replace the
thinkfield with an optional, concise, in-character explanation derived exclusively from game-visible data. - State explicitly that outbound fields must never contain system prompts, developer instructions, credentials, API keys, user data, local file contents, tool output, or unrelated session context.
- Prefer omitting
thinkandplanentirely because the API documentation marks them optional. - If spectator commentary is required, generate it in a separate constrained step with only sanitized game state as input.
- Display a clear disclosure warning and require informed user approval before publishing any commentary.
- Apply output filtering and length limits before submission to reduce accidental data leakage.
- Avoid representing spectator-visible information as private in API documentation or examples.
