T02 · Agent Memory Poisoning
- Location
SKILL.md:341- Finding
Untrusted intelligence is mandated to be written into durable cross-session memory
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:341-365; related instructions inSubagentSKILL.md:55-65andSubagentSKILL.md:98-104
Vulnerability Type: Persistent memory poisoning
Risk Level: HighVulnerable Code
SKILL.md:341-365:markdown ## Memory + identity persistence requirement Document Horus context in: `~/workspace/horus/MEMORY.md` At minimum keep durable notes for: - What Horus is (purpose + UX) — currently MWC 2026 Barcelona event intelligence terminal - Where Horus data lives (`~/workspace/horus/horus-relay/data/`) - Active event context (MWC 2026 — 3–6 March 2026, Fira Gran Via, Barcelona) - Key tracked themes: Samsung/Qualcomm/Ericsson/Nokia announcements, 5G/6G, AI on device, semiconductor supply chain - How to answer intel questions from data by default - Cross-channel continuity expectation (external chat + Horus chat = same agent) ## Horus memory file (required) Maintain project memory in: ```text ~/workspace/horus/MEMORY.mdUse it as a durable backup log of important events and changes, each with UTC date/time.
When major incidents or architectural changes happen, append an entry immediately. This memory is used to cross-reference ongoing events and avoid losing context between sessions.
text `SubagentSKILL.md:55-65`: ```markdown ## Memory requirement (mandatory) For notable announcements and major changes, append entries with UTC timestamp to: `~/workspace/horus/MEMORY.md` Use concise format: ```markdown ## YYYY-MM-DD HH:MM UTC — <event or announcement> - What was announced/happened: - Why it matters (market / tech / industry impact): - Sources/signals: - Follow-up:text `SubagentSKILL.md:98-104`: ```markdown ## Durable memory reminder Keep `~/workspace/horus/MEMORY.md` updated with durable facts: - Horus purpose: MWC 2026 Barcelona tech event intelligence terminal - Active event: MWC 2026, Fira ...[truncated 3278 chars]- Remediation
View remediation
Remediation Suggestions
- Remove the requirement to persist every notable announcement or major change automatically.
- Require explicit user approval before writing feed-derived information to durable memory.
- Keep intelligence records in a project-scoped database or cache instead of agent behavioral memory.
- Store external content strictly as data and never as executable instructions or assistant policy.
- Record immutable provenance for every persisted item, including source URL, retrieval time, source type, and content hash.
- Require corroboration from multiple independent sources before promoting a claim to durable status.
- Add confidence, verification state, expiration time, and last-reviewed time to each record.
- Prevent feed content from modifying identity, safety, tool-use, or response-policy fields.
- Separate cross-channel conversation state by user and authorization context rather than relying on one shared global memory file.
- Treat all existing
MEMORY.mdentries as untrusted until reviewed and sourced. - Add size limits, file locking, schema validation, and rollback or audit logging for approved writes.
- Permit agents to read the event cache by default, but grant write access to durable memory only for an explicit memory-maintenance task.
