文章摘要
文章披露了LangChain Core框架存在一个严重漏洞CVE-2025-68664(代号LangGrinch),该漏洞可能导致敏感信息泄露。作者Yarden Porat在圣诞节当天发布这一安全警告,提醒用户注意该高危漏洞带来的数据安全风险。
文章总结
圣诞惊魂:LangGrinch漏洞袭击LangChain核心框架(CVE-2025-68664)
关键发现
网络安全公司Cyata研究员Yarden Porat在LangChain核心库(langchain-core)中发现了一个高危反序列化漏洞(CVE-2025-68664)。该漏洞允许攻击者通过精心构造的提示词注入,窃取环境变量中的敏感信息甚至执行任意代码。目前官方已在1.2.5和0.3.81版本中发布补丁。
漏洞核心机制
1. 标记混淆攻击:LangChain使用含"lc"键的字典作为内部序列化标记,但未对用户输入的同类字典进行转义处理
2. 触发场景:当LLM输出的additional_kwargs或response_metadata等字段被序列化后重新加载时,攻击者可伪造LangChain对象
3. 默认配置风险:漏洞利用关键参数secrets_from_env在补丁前默认开启,允许从环境变量读取凭证
影响范围
- 全球约8.47亿次下载量(截至2025年12月)
- 涉及12个核心功能流,包括:
- 事件流处理(astreamevents v1)
- 运行日志(Runnable.astreamlog)
- 内存向量数据库等缓存系统
潜在危害
- 通过AWS聊天组件间接外泄环境变量
- 利用Jinja2模板实现代码执行
- 任意类实例化引发副作用(网络调用/文件操作等)
修复建议
1. 立即升级至安全版本
2. 将LLM输出字段视为不可信数据
3. 禁用非必要的环境变量凭证解析功能
行业启示
该漏洞暴露了AI代理框架在信任边界设计上的系统性风险:
- 结构化数据流可能成为新型攻击面
- 序列化管道中的标记混淆问题具有跨生态共性(同期LangChainJS也发现同类漏洞)
- 企业普遍缺乏对AI组件的资产可视化能力
时间线
- 12月4日:通过Huntr平台提交报告
- 12月5日:获LangChain团队确认
- 12月24日:正式发布安全公告
(注:原文中的社交媒体分享按钮、公司介绍等非技术内容已精简,保留核心漏洞分析及缓解措施)
评论总结
总结评论内容:
- 漏洞严重性讨论
- 认为漏洞可能导致敏感信息泄露甚至权限提升(评论1:"can leak secrets (and in some cases escalate further)")
- 预测使用langchain的用户可能不会及时修复(评论3:"not going to patch this in a timely manner")
- 对漏洞描述文风的批评
- 多人批评使用了LLM生成的冗长文风(评论2:"WHY on earth...feed the description text through an LLm")
- 指出描述中存在事实错误(评论8:"it was definitely not the night before Christmas")
- 对开发者的调侃
- 调侃创始人可能因此获利(评论5:"Harrison Chase is laughing his way to the bank")
- 戏称漏洞为"LangGrinch"(评论4,评论7提到Grinch形象使用问题)
- 技术细节讨论
- 指出具体漏洞原因是字典转义问题(评论9:"did not properly escape user-controlled dictionaries")
- 对技术表述提出修改建议(评论6:"'Large blast radius' would be a good substitute")
- 其他观点
- 对安全团队节假日工作的同情(评论4:"Cheers to all the teams on sev1 calls on their holidays")
- 部分用户表示不受影响(评论6:"this whole issue doesn't affect me")