事件经过
MongoDBChatMessageHistory在运行时未强制执行文档规定的不可信结构化会话标识符的字符串类型(CWE-943)。当多个用户的会话历史共享一个MongoDB集合时,该标识符被解释为MongoDB查询条件而非字面值,因此能够调用聊天历史操作攻击者可以读取、修改或删除其他用户的存储会话。已在@langchain/mongodb 1.3.1中修复。
影响分析
LangChain的MongoDB聊天记忆是持久化LLM对话/RAG应用的默认构建块。该漏洞使一个用户能够访问其他用户的聊天历史(提示词、上下文、可能敏感的交流内容)并进行篡改——对应用程序反馈回LLM的确切数据进行记忆投毒。
攻击途径
在与其他用户共享集合的聊天历史操作中,提供MongoDB操作符对象(例如$ne条件)而非普通会话字符串。
受影响系统
@langchain/mongodb < 1.3.1; langchainjs < 1.5.14
缓解措施
升级到@langchain/mongodb 1.3.1 / langchainjs 1.5.14;确保会话标识符为服务器控制的字符串。