T02 · Agent Memory Poisoning
- Location
SKILL.md:455- Finding
Uncontrolled Cross-Session Modification of Agent Memory
- Content
View full analysis
Vulnerability Details
File Locations:
SKILL.md:455references/post-session-review.md:40-49references/coverage-report.md:94-99
Vulnerability Type: Persistent storage of externally derived information in shared agent memory
Risk Level: MediumVulnerable Code Snippets:
SKILL.md:455markdown 21. **CHAIN BRAND LEARNING** — Maintain a dynamic `chain-brands-detected.json` per search session. If a brand appears in >2 locations, add it to the known chain list for future searches. Share learnings across sessions via MEMORY.md updates.references/post-session-review.md:40-49markdown ### 3. Memory Update Append a concise learning summary to `memory/YYYY-MM-DD.md` under `Prospecting Skill Learnings`: - New keywords that proved effective - New center points discovered for a city - Filter false-positives and how they were corrected - Chain brands detected - Any skill bugs or edge cases encountered Also update `MEMORY.md` with key milestones.references/coverage-report.md:94-99markdown ## Usage 1. **Review after run**: Check `coverage_estimate` to see if search was comprehensive enough 2. **Feed into next run**: Use `remaining_gaps` and `chain_brands_detected` to improve Step 0 3. **Share learnings**: Copy `chain_brands_detected` to global `chain-brands-detected.json` 4. **Update MEMORY.md**: Summarize key learnings for cross-session improvementTechnical Analysis
The Skill requires search-derived information to be written to shared
MEMORY.md, dated memory files, and a global chain-brand file. These writes are outside the batch-local output directory and are explicitly intended to affect future sessions.The persisted material originates from Google Maps, business websites, social media, and search results. The workflow does not require user approval, provenance verification, schema validation, namespace isolation, expiration, or roll ...[truncated 2035 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove mandatory writes to
MEMORY.mdandmemory/YYYY-MM-DD.mdfrom the prospecting workflow. - Keep all campaign-derived learning under the batch-specific directory, such as:
text prospect-data/{batch}/session-learnings.json - Require explicit user confirmation before promoting any batch-local information into persistent state.
- Store promoted information in a Skill-specific, schema-validated state file rather than general agent memory.
- Allowlist fields eligible for persistence, such as normalized brand name, source URLs, observation date, and verified location count.
- Never persist raw page text, free-form external instructions, or unverified synthesized claims.
- Require multiple independent sources before adding a brand to a global list.
- Preserve provenance, including source URL, extraction timestamp, verification status, and approving user.
- Add expiration, review, deletion, and rollback mechanisms for persisted entries.
- Isolate persistent data by user or workspace so one campaign cannot influence unrelated users.
- Remove mandatory writes to
