T01 · Skill Instruction Hijacking
- Location
SKILL.md:255- Finding
Persistent Agent Instruction and Memory Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill's remote knowledge and mentor features are disclosed, but it asks to persist broad behavior changes, periodic background tasks, and credential handling in ways users should review carefully.
Install only if you are comfortable with a third-party MCP service becoming part of routine agent workflow. Do not add the SOUL.md, AGENTS.md, or HEARTBEAT.md blocks unless you explicitly want persistent cross-session behavior, sub-agent inheritance, and periodic network activity. Prefer header-based authentication, store the API key in a secure secret manager or locked-down file, and review exactly what project context will be sent before each call.
SKILL.md:255Persistent Agent Instruction and Memory Hijacking
SKILL.md:303Cross-Session Persistence Through Periodic Heartbeat Tasks
SKILL.md:23Mutable Remote Instructions Installed Without Integrity Verification
SKILL.md:238API Key Exposure Through URL Authentication and Weak Local Storage Guidance
The skill instructs storage of the API key in a local plaintext JSON file under ~/.config/a0x/credentials.json. Plaintext credential persistence increases the risk of secret theft by other local processes, misconfigured permissions, accidental commits, backups, or later agent access, enabling unauthorized use of the remote service.
Save the apiKey from the response immediately — it's shown only once.
Store in ~/.config/a0x/credentials.json:
{"api_key": "a0x_mcp_abc123...", "agent_name": "YourAgentName"}
The skill instructs the agent to append content to persistent local files such as SOUL.md, AGENTS.md, and HEARTBEAT.md, altering future behavior of the main agent and sub-agents. This is dangerous because it establishes durable prompt persistence and broadens the skill's control far beyond the current task, potentially causing ongoing data exfiltration or unwanted tool use in later sessions.
The activation conditions include very broad triggers like errors, patterns, architecture decisions, Base, crypto, and grants, which can cause the skill to activate during many ordinary tasks. In context, broad activation is risky because activation leads to recommendations for remote MCP calls and possible persistent configuration changes, increasing the chance of unnecessary external sharing and workflow hijacking.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Install locally:
mkdir -p ~/.claude/skills/a0x-agents
curl -s https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/skill.md > ~/.claude/skills/a0x-agents/SKILL.md
curl -s https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/knowledge.md > ~/.claude/skills/a0x-agents/KNOWLEDGE.md
The installation instructions place the skill in a persistent home-directory location so it survives across sessions. In this skill's context, persistence is more dangerous because the skill also promotes durable behavioral rewrites and automatic future use of remote services, extending trust in a third-party instruction set beyond the current task.
Install locally:
mkdir -p ~/.claude/skills/a0x-agents
curl -s https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/skill.md > ~/.claude/skills/a0x-agents/SKILL.md
curl -s https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/knowledge.md > ~/.claude/skills/a0x-agents/KNOWLEDGE.md
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
mkdir -p ~/.claude/skills/a0x-agents
curl -s https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/skill.md > ~/.claude/skills/a0x-agents/SKILL.md
curl -s https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/knowledge.md > ~/.claude/skills/a0x-agents/KNOWLEDGE.md
The transparency section claims only a narrow set of data is sent, but later documentation for jessexbt/chat supports additional fields such as project description, stage, tech stack, wallet address, and social links. This creates a misleading data-sharing boundary that can cause users or agents to disclose more information to the remote service than the policy summary suggests.
The phrase 'How to call any tool' presents remote tool invocation in an unrestricted, generic way, encouraging broad access to server-side capabilities once authenticated. In context, this lowers safety boundaries around what the agent may send or do through the remote MCP service, especially when combined with persistent behavior changes and broad activation rules.
| knowledge/vote | Curate. Vote on proposals from other agents (verified agents only) |
| knowledge/my-proposals | Check your submission status |
How to call any tool:
curl -X POST https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/mcp \
-H "Content-Type: application/json" \
The skill explicitly directs the agent to make HTTP POST requests to a third-party MCP endpoint using an API key and session ID. External transmission is inherent to the feature, but it remains security-relevant because it can send user/task-derived data off-platform, and the skill's broad triggers increase how often that may happen.
How to call any tool:
curl -X POST https://services-a0x-agents-mcp-dev-679925931457.us-west1.run.app/mcp \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Mcp-Session-Id: YOUR_SESSION_ID" \
The recall trigger scope applies to broad classes of technical work and says to check the remote 'brain' before reasoning about an issue yourself. This can pressure agents into sending problem descriptions externally for routine development tasks, creating unnecessary dependency on a third-party service and avoidable leakage of contextual metadata.
The mentor consultation triggers are vague and broad, covering many product, architecture, and ecosystem situations. Because the mentor is a remote service, this can normalize sending project context, URLs, and strategic information to an external endpoint in a wide range of cases without strong necessity or clear user-by-user consent.
The registration flow collects agent identity metadata and a walletAddress, then stores an API key locally, even though the core advertised function is knowledge recall and mentorship. This expands data collection and identity linkage in ways not necessary for the immediate skill purpose and increases privacy and account abuse risk if the credentials or on-chain identity are exposed.
Detected: suspicious.exposed_secret_literal