[ CVE-2026-116575 · Published 26 Oct 2026 ]
Mem0: Cross-tenant conversation leak via unescaped delimiter collision in session-scope key (_build_session_scope)
[ Description ]Official description
Mem0 provides persistent memory infrastructure for AI agents and applications. Prior to Python SDK 2.0.18 and TypeScript SDK 3.1.6, _build_session_scope() in mem0/memory/main.py and Memory.buildSessionScope() in the TypeScript SDK join caller-controlled user_id, agent_id, and run_id values using unescaped & and = delimiters. A caller can embed another scope component in a controlled identifier so that distinct tenant tuples produce the same session_scope key. Memory.add(), AsyncMemory.add(), and the REST POST /memories flow use that key to read and save recent raw messages, allowing cross-tenant conversation disclosure and eviction or interleaving of another tenant's history. This issue is fixed in Python SDK 2.0.18 and TypeScript SDK 3.1.6.
[ Fixes ]Fixes and patches
- mem0ai 2.0.18Fixed version · GitHub Advisories · pip package mem0ai: upgrade to 2.0.18 or later (affected < 2.0.18)
- mem0ai 3.1.6Fixed version · GitHub Advisories · npm package mem0ai: upgrade to 3.1.6 or later (affected < 3.1.6)
[ Packages ]Affected open-source packages
- mem0ai pipAffected < 2.0.18 · fixed in 2.0.18 · GHSA-5324-3w58-qpp2
- mem0ai npmAffected < 3.1.6 · fixed in 3.1.6 · GHSA-5324-3w58-qpp2