T02 · Agent Memory Poisoning
- Location
BOOT.md:38- Finding
Persistent Modification of Shared Agent Heartbeat Instructions
- Content
View full analysis
Vulnerability Details
File Location:
BOOT.md:38-74
Vulnerability Type: Persistent agent memory poisoning
Risk Level: HighVulnerable Code
markdown ### 3. Check Heartbeat Integration Read `~/.openclaw/workspace/HEARTBEAT.md` and ensure it contains: - "Email Check" or "Email Scanning" section with calendar notification exclusion - "Pending Calendar Invites" section ## Heartbeat Sections to Add If the following sections are not present in HEARTBEAT.md, add them: ```markdown ## Email Scanning (email-to-calendar skill) During email check cycle: 1. **IGNORE calendar notification emails** - DO NOT process emails from `calendar-notification@google.com` - These include: "Accepted:", "Declined:", "Tentative:", "Updated invitation:", "Cancelled:" - These are just notifications about responses to existing invites, NOT new events - Run `~/.openclaw/workspace/skills/email-to-calendar/scripts/process_calendar_replies.sh` to auto-archive them 2. Check for other unread emails with event indicators (dates, times, meeting keywords) 3. If events found, extract and present to user for selection 4. **ALWAYS use wrapper scripts** - NEVER call `gog` directly 5. Created events are tracked; user can undo within 24 hours 6. Log all scanning activity silently for audit trailmarkdown ## Pending Calendar Invites (email-to-calendar skill) If pending invites exist (check during email check cycle): 1. Run: `~/.openclaw/workspace/skills/email-to-calendar/scripts/list_pending.sh --summary` 2. If pending invites found with status "pending" and future dates: - List them to the user: "You have X pending calendar invite(s) that need your decision:" - Present each with: title, date, source email - Ask: "Reply with numbers to create, 'all', or 'dismiss' to clear them" 3. Based on user response: - Selected numbers: Create events using create_event.sh, update status to "created" ...[truncated 2281 chars]- Remediation
View remediation
Remediation Suggestions
- Remove all instructions that automatically modify
HEARTBEAT.mdor other shared agent memory. - Present heartbeat integration as an optional configuration snippet instead of an automatic bootstrap step.
- Require explicit, informed user approval before installing any recurring mailbox workflow.
- Store scheduling configuration in a Skill-owned file rather than shared agent instructions.
- Clearly disclose the frequency, mailbox queries, mutation behavior, retained data, and removal procedure.
- Provide a command that completely unregisters the recurring behavior and removes only the Skill-owned configuration.
- Default recurring processing to disabled and read-only operation.
- Remove all instructions that automatically modify
