文章总结: LangChainJS在@langchain/core<0.3.80/1.1.8、langchain<0.3.37/1.2.3版本存在反序列化注入漏洞:toJSON未转义含lc键的用户数据,致反序列化时恶意对象被当合法LangChain对象执行,可RCE。官方已在新版修复,建议立即升级至@langchain/core≥0.3.81/1.2.5、langchain≥0.3.37/1.2.3并审计入参。
综合评分: 85
文章分类: 漏洞分析,WEB安全,应用安全,漏洞预警
【漏洞分析】LangChain 反序列化漏洞(CVE-2025-68664)
原创
whoami0002
SecurityPaper
2025年12月28日 19:39
江苏
漏洞描述
LangChain 是一个用于构建基于 LLM 的应用程序的框架。在 @langchain/core 版本 0.3.80 和 1.1.8 之前,以及 langchain 版本 0.3.37 和 1.2.3 之前,LangChain JS 的 toJSON() 方法(以及后续使用 JSON.stringify() 将对象字符串化时)存在序列化注入漏洞。该方法在序列化 kwargs 中的自由格式数据时,不会对带有 ‘lc’ 键的对象进行转义。’lc’ 键是 LangChain 内部用于标记序列化对象的键。当用户控制的数据包含此键结构时,在反序列化过程中,它会被视为合法的 LangChain 对象,而不是普通的用户数据。此问题已在 @langchain/core 版本 0.3.80 和 1.1.8 以及 langchain 版本 0.3.37 和 1.2.3 中修复。
漏洞影响
受影响版本:
1.x.x 分支:1.0.0 ≤ langchain-core < 1.2.5
0.3.x 分支:langchain-core < 0.3.81
漏洞分析
据官方通告可知,漏洞点在于toJSON()方法未对对象进行处理,导致包含lc键的对象在反序列化的过程中,被视为了合法的LangChain对象。
搭建环境
使用npm直接引入存在漏洞的库
npm install [email protected] @langchain/[email protected]
使用官方文档中的代码,创建一个humanMessage
humanMessage的对象结构,包含属性,additional_kwargs,response_metadata
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:SecurityPaper whoami0002《【漏洞分析】LangChain 反序列化漏洞(CVE-2025-68664)》