HackerNews 编译,转载请注明出处:
LangChain Core(langchain-core)是 LangChain 生态的核心 Python 包,为构建大模型应用提供通用接口与模型无关工具。安全研究员 Yarden Porat 于 2025 年 12 月 4 日披露了一个严重漏洞(CVE-2025-68664,CVSS 9.3),代号“LangGrinch”。
公告指出:
“LangChain 的 dumps() 与 dumpd() 函数存在序列化注入缺陷。函数在序列化自由格式字典时,未对含有内部保留键 ‘lc’ 的字典做转义。’lc’ 被 LangChain 用于标记已序列化的对象。当用户可控数据携带该键结构时,在反序列化阶段会被当成合法的 LangChain 对象,而非普通用户数据。”
漏洞根因:
dumps()/dumpd() 未转义用户可控字典中的 “lc” 键;当后续用 load()/loads() 反序列化时,这些数据被当作有效 LangChain 对象实例化,而非普通输入。攻击者可通过 metadata、response 等字段注入恶意对象结构。虽然无法加载任意外部类,但可在受信任的 LangChain 命名空间(如 langchain_core、langchain_community)内实例化 Serializable 子类,其中部分类在初始化时会产生副作用。
Cyata 研究员 Yarden Porat 强调:
“一旦攻击者能让 LangChain 的编排循环先序列化、再反序列化带有 ‘lc’ 键的内容,就能实例化任意不安全对象,打开多种攻击面。”
潜在危害:
-
从环境变量泄露机密
-
在受信任命名空间实例化危险类
-
通过 Jinja2 模板造成代码执行
-
借助提示注入,把恶意对象藏进用户可控字段(如 metadata)
Porat 指出,该漏洞尤为严重:
-
位于 langchain-core 本体,而非外围工具或极端场景;
-
dumps()/dumpd() 是框架核心 API,全球累计安装量数亿;
-
单条提示即可间接触发——LLM 输出可能影响后续被序列化的 metadata,正常业务流程就能完成攻击,隐蔽且影响面广。
修复版本:1.2.5、0.3.81 已发布补丁,请立即升级。
消息来源: securityaffairs.com ;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文