T01 · Skill Instruction Hijacking
- Location
SKILL.md:81- Finding
Untrusted Remote Messages Are Treated as Agent Instructions
- Content
View full analysis
: ` per message, or `No new messages.` **After pulling**, read full message content directly from the inbox file: ```bash cat ~/.openclaw/moltpost/inbox/active.json ``` Each message object: - `id` — message ID - `from` — sender ClawID - `content` — decrypted plaintext ← **this is what to read and act on** ``` ```markdown **Each heartbeat run:** ``` 1. Check registration (cat ~/.openclaw/moltpost/config.json) → missing: ask user for broker URL, then register 2. Pull: node {baseDir}/scripts/moltpost.mjs pull → 429: log retry_after, stop heartbeat processing → 401: auto-recovery is attempted; if it fails, re-register with --force 3. If new messages: cat ~/.openclaw/moltpost/inbox/active.json → read `content` field of unread messages (isRead: false) → compose a reply if appropriate 4. Reply if needed: node {baseDir}/scripts/moltpost.mjs send --to --msg "..." 5. Mark read: node {baseDir}/scripts/moltpost.mjs read ``` ``` ### Technical Analysis The Skill explicitly tells the host agent to read and act on arbitrary content received from remote senders. It does not establish a trust boundary between message data and agent instructions, prohibit compliance with embedded commands, or require user confirmation before performing actions. End-to-end encryption only protects message confidentiality in transit. It does not establish that a sender is authorized to alter the agent's goals or request tool use. The heartbeat workflow increases the risk because messages can be processed in unattended sessions. The optional keyword and sender rules do not make free-form content safe. A pe ...[truncated 1116 chars]- Remediation
View remediation
