
主流大语言模型(LLM)智能体开发开源框架 LangChain 曝出一项高危漏洞。该漏洞编号为CVE-2025-68664,通用漏洞评分系统(CVSS)得分为 9.3,攻击者可利用此漏洞窃取敏感环境变量,或触发非预期的系统操作。
该漏洞的根源在于 LangChain 的数据序列化机制 —— 即把复杂对象转换为可存储、可传输格式的过程。由于框架未对特定字典键名进行恰当的转义处理,恶意数据得以伪装成合法的 LangChain 对象。
问题的核心出在 LangChain 的
dumps()与dumpd()两个函数上。这两个工具函数本应实现数据的安全序列化,但研究人员发现,它们无法对包含特定键名"lc"的字典进行转义处理。安全公告中解释道:“
lc键是 LangChain 内部用于标记序列化对象的标识符。当用户可控的数据中包含该键结构时,系统在反序列化过程中会将其判定为合法的 LangChain 对象,而非普通的用户输入数据。”这一看似微小的设计疏漏,却为攻击打开了危险的通道。一旦攻击者能在数据流中注入包含该特定键名的字典 —— 例如通过大语言模型的响应元数据 —— 就可以诱导系统在加载数据的过程中执行内部逻辑。
该漏洞最令人担忧的一点,是其潜在的攻击载体为提示注入攻击。
报告指出:“最常见的攻击载体是大语言模型的响应字段,如
additional_kwargs(附加参数)或response_metadata(响应元数据),攻击者可通过提示注入手段操控这些字段。”在实际攻击场景中,攻击者可操纵大语言模型输出特定的 JSON 结构。当应用程序处理该输出内容时,会在毫不知情的情况下对恶意载荷执行反序列化操作,进而引发严重后果。
报告警告称:“控制了序列化数据的攻击者,能够提取环境变量中的机密信息。” 通过注入类似
{"lc": 1, "type": "secret", "id": ["ENV_VAR"]}这样的恶意载荷,攻击者可强制应用程序解析并泄露隐藏的 API 密钥或密码,尤其是当应用程序启用了secrets_from_env=True这一旧版配置时,风险更为突出。除数据窃取外,该漏洞还允许攻击者在受信任的命名空间内实例化任意类,进而可能引发 “网络请求、文件操作等副作用”。
此次漏洞影响 LangChain 生态中的多个版本,具体如下:
- LangChain Core:版本号低于 0.3.81
- LangChain:版本号大于等于 1.0.0 且低于 1.2.5
框架维护团队已发布修复补丁以解决该漏洞。开发者被强烈建议立即升级至以下版本:
- LangChain 1.2.5
- LangChain Core 0.3.81
该补丁修复了序列化函数中的转义逻辑,确保用户可控的
lc键会被判定为无害数据,而非可执行的指令。






发表评论
您还未登录,请先登录。
登录