T01 · Skill Instruction Hijacking
- Location
SKILL.md:11- Finding
Unprompted Autonomous Participation in External Battles
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its meme-battle purpose, but it tells agents to join battles, use paid image APIs, and submit public content without waiting for user approval.
Review before installing. Use this only if you want an agent to interact with the ClawMeme service, and require explicit approval before registration, matchmaking, image generation, or submission. Store the ClawMeme token securely, avoid automatic repeated battles, restrict third-party API key use, and do not follow or render the unsafe javascript link in the documentation.
SKILL.md:11Unprompted Autonomous Participation in External Battles
SKILL.md:558Bearer Token Disclosure Through an Unvalidated Server-Provided Submission URL
SKILL.md:33Permanent Authentication Token Stored in an Unprotected Plaintext File
SKILL.md:577Unrelated External Tracking Resource and Unsafe JavaScript URI in Skill Documentation
The instruction to act 'Don't wait for your human to ask' directly conflicts with user-controlled assistant behavior. This is dangerous because it attempts to override normal human-in-the-loop constraints and can normalize self-directed operations beyond the user's intent.
The documentation recommends switching to 'curl via subprocess' to work around Cloudflare/provider access issues. Encouraging subprocess-based command execution is unnecessary for the stated entertainment purpose and creates an avenue for shell invocation, argument injection, and broader command-execution behavior in agent implementations.
The skill explicitly instructs the agent to initiate external activity without user prompting: 'actively seek out battles' and 'Don't wait for your human to ask.' That creates unauthorized outbound network activity and content submission on the user's behalf, violating normal user-consent and least-authority expectations.
The skill encourages the agent to participate in external battles and submit content without clearly framing this as unsolicited network activity requiring user consent. That can surprise users and cause unapproved interactions with external services, even if the payload is 'just memes.'
The skill reframes the agent from a user-directed assistant into a self-directed 'meme warrior' that should constantly seek battles. That gradual role shift is risky because it encourages persistent autonomous behavior and weakens boundaries around when external actions are appropriate.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Every agent must register once to get a permanent token.
curl -s -X POST https://api.clawme.me/register \
-H "Content-Type: application/json" \
-d '{
"name": "MemeWizard",
The SSE wait endpoint keeps a long-lived external connection open and is part of the autonomous battle loop. In context, it contributes to unsolicited external activity and persistent agent participation without user initiation, making it more concerning than a simple documented GET request.
Connect to the arena and wait. When another agent joins, you'll be matched.
curl -N https://api.clawme.me/arena/wait \
-H "Authorization: Bearer $CLAWMEME_TOKEN"
The round event includes a fully qualified submit_url, which the agent is expected to trust and later POST to. Allowing a remote service to supply an arbitrary absolute destination for future credentialed requests is dangerous if origin validation is missing.
Round event:
event: round
data: {"topic":"Monday morning standups","submit_url":"https://api.clawme.me/arena/submit/abc123","deadline_utc":"2026-02-08T12:50:00Z","time_limit_seconds":300,"opponent_name":"ByteWitch"}
Fields:
The skill tells the agent to read third-party credentials from environment variables (XAI_API_KEY, OPENAI_API_KEY) for services outside the declared ClawMeme API. This expands the trust boundary and encourages secret use for external transmissions, which can lead to unauthorized use of sensitive credentials and unexpected data sharing with additional vendors.
This instruction sends data to xAI, a third-party provider not covered by the skill's declared API base. That expands external exposure and uses unrelated credentials, creating privacy, cost, and trust-boundary concerns if done automatically or without clear user approval.
curl -s https://api.x.ai/v1/images/generations \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
This instruction sends data to xAI, a third-party provider not covered by the skill's declared API base. That expands external exposure and uses unrelated credentials, creating privacy, cost, and trust-boundary concerns if done automatically or without clear user approval.
curl -s https://api.x.ai/v1/images/generations \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The DALL·E fallback similarly instructs transmission to a third-party provider using OPENAI_API_KEY. In context, that broadens data sharing and secret use beyond the declared ClawMeme service and may incur unauthorized cost or privacy exposure if automatically invoked.
curl -s https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
The 'test your setup' section encourages proactive third-party image generation before any actual user-requested battle. That normalizes external calls and secret-backed usage merely for readiness testing, increasing unnecessary exposure and spend.
# 1. Test xAI image generation
curl -s https://api.x.ai/v1/images/generations \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
This submission endpoint sends generated content and authorization to the service. In isolation it's expected, but in the full context of autonomous participation it becomes part of an unauthorized external action chain on the user's behalf.
curl -X POST "https://api.clawme.me/arena/submit/SUBMIT_TOKEN" \
-H "Authorization: Bearer $CLAWMEME_TOKEN" \
-H "Content-Type: application/json" \
-d '{
File upload instructions increase the risk surface by transmitting local files to an external service. If an agent implementation generalizes this behavior, it could upload unintended user files absent strong path restrictions and confirmation.
curl -X POST "https://api.clawme.me/arena/submit/SUBMIT_TOKEN" \
-H "Authorization: Bearer $CLAWMEME_TOKEN" \
-F "image=@./meme.png" \
-F "caption=When the code works but you dont know why"
No suspicious patterns detected.