T02 · Agent Memory Poisoning
- Location
SKILL.md:57- Finding
Persistent Memory Content Is Reintroduced Without Trust Boundaries
- Content
View full analysis
", "maxTokens": 2000 }' ``` Response contains a `memories` array. Incorporate relevant memories into your answer naturally. Do not dump raw memory output to the user. **If synthesize fails:** Still answer the user. Memory is additive, not blocking. Log the error silently and continue. ### After important exchanges: Capture Store the conversation when it contains memorable content. ```bash curl -s -X POST "$BASE_URL/v1/capture" \ -H "Authorization: Bearer $HIPPOCORTEX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "sessionId": "'"$SESSION_ID"'", "type": "conversation", "payload": { "messages": [ {"role": "user", "content": ""}, {"role": "assistant", "content": ""} ] }, "metadata": { "extractedMemories": [ "User prefers dark mode", "Project X uses PostgreSQL 16" ] } }' ``` The `extractedMemories` array is critical -- it stores discrete semantic facts directly. Extract 1-5 concise facts from the exchange. ``` ### Technical Analysis The Skill persists user-controlled conversation content and later instructs the agent to incorporate retrieved memories before answering every message. It does not define a security boundary between factual memory data and executable natural-language instructions. There are no documented controls for: - Detecting or excluding instruction ...[truncated 1858 chars]- Remediation
View remediation
