聚焦源代码安全,网罗国内外最新资讯!
热门大语言模型编排框架 LangChain 的 Go 语言实现版本 LangChainGo 中存在一个严重漏洞CVE-2025-9556,可导致未经身份验证的攻击者通过恶意构造的提示模版执行任意文件读取操作,无需访问系统即可暴露服务器上的敏感文件。
LangChainGo 使用 Go 语言对 Python 的 Jinja2 模板引擎移植版本 Gonja 模板引擎来解析和渲染动态提示内容。CERT协调中心和软件工程研究所发布报告称,Gonja兼容 Jinja2 的一些指令如 {% include %}, {% from %}, and {% extends %},可复用模板但同时在渲染不受信任的内容时,引入了危险的文件系统交互。
攻击者可提交包含 payload 的提示,如 {% include “/etc/passwd” %},可迫使 LangChainGo 加载并返回内容。由于 Gonja 原生支持 Jinja2 语法,因此攻击者甚至可以使用嵌套语句或自定义宏,在一次注入中遍历目录结构或连续读取多个文件。在基于 LangChainGo 构建的 LLM 聊天环境中,攻击者只需要能够访问提示提交接口,就可以实施此类攻击,因此非常易遭远程攻击。
该漏洞影响 LangChainGo 0.18.2以下版本,CVSS v3.1评分为9.8。
该漏洞破坏系统保密性,从根本上动摇了基于LLM系统的信任基础。
攻击者可收割 SSH 密钥、环境文件、API凭据或存储在服务器上的其它专有数据。
一旦获取这些文件,攻击者就可提权、横向挑战或盗取知识产权。在多租户部署中,风险被放大,一名恶意用户可访问其它租户实例的文件系统资源。作为缓解措施,维护人员已发布补丁,介绍了一种安全的 RenderTemplateFS 函数,它默认执行可允许模板路径的白名单并禁用任意文件系统访问权限。该更新还加固了模板解析例程,清理或拒绝任何包含 Jinja2 文件包含指令的提示。LangChainGo 的运维人员应立即升级至 0.18.2或后续版本并审计提示处理代码中使用 NewTemplate() 的任何自定义模板实例化,并以已修复的 NewSecureTemplate API() 取而代之。
Cursor AI 编辑器可导致仓库在设备上“自动运行”恶意代码
史上首例:NPM 包 Nx 被投毒,开发人员遭AI软件供应链攻击
https://cybersecuritynews.com/critical-langchaingo-vulnerability/
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~

