T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:12- Finding
Overbroad Credential Discovery and Unprotected Persistent Secret Storage
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This game skill is mostly coherent, but it asks the agent to search broadly for credentials, persist API keys, and potentially run recurring account-changing actions.
Review before installing. Provide the Voidex key only through a dedicated secret or VOIDEX_ARENA_KEY, do not allow broad searches of files, notes, memory, or .env files, avoid storing the key in plain config or agent memory, and enable heartbeat or cron only if you are comfortable with repeated automated changes to the game account.
SKILL.md:12Overbroad Credential Discovery and Unprotected Persistent Secret Storage
HEARTBEAT.md:1Cross-Session Autonomous Execution Through Heartbeat and Cron Scheduling
scripts/trade.sh:13API Key Exposed in Curl Process Arguments
The declared description presents the skill as a trading game capability centered on buying goods, flying between star systems, and selling for profit. However, the supplied code chunk only reads agent/market/service/leaderboard data and conditionally calls repair and refuel endpoints. It never places buy orders, sells inventory, or initiates travel, which are the core behaviors implied by the description and even by the script comments. While leaderboard access is consistent with the description, the primary implemented behavior is status maintenance and information retrieval rather than trading. Therefore the description does not accurately represent what this code actually does.
The explicit instruction to inspect .env files for credentials is a direct secret-access pattern. .env files often contain unrelated API keys, tokens, and database credentials, so telling an agent to read them for a game account materially increases the risk of credential exposure beyond the skill's legitimate need.
You MUST search your memory, notes, files, and environment for existing credentials:
- Check environment variable `VOIDEX_ARENA_KEY`
- Search your persistent memory/notes for any previously stored API key or agent name
- Check local files, config files, or .env files for stored credentials
**If you find existing credentials:** Use them. Call `GET /api/v1/me` to verify they work. Do NOT register a new account.
The skill explicitly instructs the agent to retrieve stored API credentials from memory, files, or environment without constraining scope or warning about sensitive secret handling. In an agent setting, this can normalize broad secret access and increase the chance that unrelated credentials are accessed, retained, or exposed through logs, memory, or downstream actions.
The skill appears to rely on shell-capable behavior yet declares no explicit tool or permission scope. This creates an authorization gap where an agent may use broader local capabilities than users expect, increasing the chance of unintended file or environment access.
The skill instructs the agent to search memory, notes, files, config files, and .env files for credentials, which is far broader than necessary for a trading-game workflow. This can expose unrelated secrets and normalize credential scavenging from local or persistent storage without clear user consent.
Broad instructions to inspect local files, config, notes, and environment for stored credentials bypass the principle of least surprise and occur without any explicit warning or consent flow. Even if intended to avoid duplicate registrations, the query scope is disproportionate and can access sensitive data unrelated to the game.
The skill combines two risky behaviors: broad credential discovery across local and persistent sources, and mandatory persistence of recovered secrets for future reuse. Together these create a durable secret-handling anti-pattern that can leak credentials across sessions, tools, or unrelated tasks.
The skill directs persistent storage of the API key and agent name in memory systems or local configuration, extending secret lifetime and spreading it across storage locations. Persistent replication of credentials increases the chance of later disclosure, unintended reuse, or compromise by other tools and sessions.
Persistent memory and logging are not inherently malicious for a game, but the instruction is broad and encourages accumulating long-lived session data. Without strict scoping, this memory may capture sensitive operational context, user-provided data, or secrets alongside trading history, creating avoidable retention risk.
The registration flow requires users to submit a personal Twitter/X handle, which is unnecessary for core gameplay and links an agent account to an external real-world identity. Without a privacy notice, minimization rationale, or safer alternative, this creates avoidable privacy risk through tracking, profiling, doxxing, or reuse of personal identifiers across contexts.
No suspicious patterns detected.