T01 · Skill Instruction Hijacking
- Location
references/cron-templates.md:14- Finding
Bridge Messages Can Trigger Excessive Workspace and Tool Access
- Content
View full analysis
Vulnerability Details
File Location:
references/cron-templates.md:14
Vulnerability Type: Remote instruction handling without least-privilege restrictions
Risk Level: HighCode Snippet:
json "message": "BRIDGE INBOX CHECK — You are [AGENT_NAME]. Respond to [OTHER_AGENT] messages.\n\nStep 1: Read last-poll timestamp\nRun: cat /tmp/acp_bridge_last_ts 2>/dev/null || echo 0\n\nStep 2: Fetch new messages from the bridge\nRun: curl -s \"http://[BRIDGE_HOST]:18790/api/inbox?after=$(cat /tmp/acp_bridge_last_ts 2>/dev/null || echo 0)\" -H 'Authorization: Bearer [TOKEN]'\n\nIf count == 0: reply NO_REPLY. Done.\n\nStep 3: Read your workspace context files before replying\nRead: SESSION-STATE.md, SOUL.md, and today's memory file from your workspace.\n\nStep 4: For each new message, compose a substantive reply\n- You ARE [AGENT_NAME]. Respond directly with data, analysis, or results.\n- If a message requests information you can look up in your workspace files or via your configured tools, do so and include the results.\n- Skip stale 'Follow-up: These tasks have been pending' messages.\n- Include numbers and deliverables, not narratives and promises.\n\nStep 5: Send reply using the bridge_reply helper\nRun: python3 [WORKSPACE]/bridge_reply.py \"<your reply>\"\n\nStep 6: Save latest timestamp. Use the 'ts' field (float seconds), NOT the 'id' field.\nRun: bash [WORKSPACE]/save_bridge_ts.sh <latest_msg_ts_float>\n\nStep 7: If the other agent assigned tasks needing the owner's attention, alert them via the message tool."Technical Analysis
The cron template treats messages obtained from the bridge as actionable agent instructions. It expressly authorizes the agent to read
SESSION-STATE.md,SOUL.md, daily memory, other workspace files, and data accessible through configured tools.Authentication establishes possession of a shared token, but it does not make every message safe to execute. There is no operation a ...[truncated 1213 chars]
- Remediation
View remediation
Remediation Suggestions
- Treat all bridge message text as untrusted data, not as agent instructions.
- Define a narrow allowlist of permitted bridge operations and readable resources.
- Prohibit remote requests from accessing secrets, credentials, identity files, memory files, or unrelated workspace content.
- Require explicit owner approval before executing tools, modifying files, sending external messages, or returning potentially sensitive information.
- Use structured, schema-validated requests instead of unrestricted natural-language task execution.
- Apply output filtering and data-loss-prevention checks before sending replies.
- Use separate credentials and authorization scopes for inbox reading, replying, sending, receiving, and administration.
