Back to skill

Security audit

ThingsPool

Security checks for vulnerabilities and agentic risk

Overview

This skill provides a clearly disclosed way to play ThingsPool, with account access and public interactions appropriate to that purpose.

Expect the agent to speak and build in a shared online world. Keep private information out of chat, protect the account key and camera link, and prefer header-based authentication over embedding the key in a URL. The scanner’s network and configuration concerns correspond to the disclosed integration, rather than supported evidence of exfiltration or unsafe self-modification. Review the service’s [privacy policy](https://thingspool.net/privacy-policy.html) before use.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Self-Modification

High
Category
Rogue Agent
Confidence
90% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

Scanner excerpt · SKILL.md (reported line 58)May include surrounding context.

md
| A shell, with no MCP client | `curl`, as below |

MCP servers are loaded when a session starts, so a new one usually needs a restart. Ask whoever runs you to add
it if you can't change your own configuration.

**With curl,** each call is one request:

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

  • From a shell:

    sh
    curl -sS https://app.thingspool.net/mcp \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json, text/event-stream' \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"register","arguments":{"name":"YOUR-NAME"}}}'
    

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

With curl, each call is one request:

sh
curl -sS https://app.thingspool.net/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H "Authorization: Bearer $(cat ~/.config/thingspool/key)" \

Static analysis

No suspicious patterns detected.