漏洞概述
随着大语言模型(LLM)应用的兴起,LangChain及其衍生框架已成为全球开发者的基础工具。但根据CERT/CC最新漏洞公告,LangChain的Go语言实现版本LangChainGo存在一个高危漏洞,可能造成严重安全风险。
该漏洞编号为CVE-2025-9556,CVSS评分高达9.8分。攻击者可通过Gonja模板引擎实现任意文件读取。CERT/CC警告称:"攻击者可通过注入恶意提示内容访问敏感文件,从而发起服务端模板注入(SSTI)攻击。"
技术原理
LangChainGo采用的Gonja是基于Go语言的Python Jinja2模板引擎实现。虽然该设计本意是支持灵活可复用的模板,但其功能特性可能被恶意利用。
安全公告指出:"由于Gonja支持Jinja2语法,攻击者可在LangChainGo中滥用{% include %}、{% from %}或{% extends %}等指令。"通过精心构造的提示词嵌入此类指令,攻击者可诱使系统读取/etc/passwd等敏感文件,将普通聊天机器人提示转变为服务端模板注入的攻击载体——这类攻击能绕过传统输入验证机制。
影响范围
该漏洞对LLM应用环境影响重大。在允许用户自由提交提示词的场景中,攻击者无需特权或后端访问权限,仅凭恶意输入即可窃取系统数据。
公告解释称:"在使用LangChainGo的LLM聊天机器人环境中,攻击者只需获得提示词访问权限即可实施恶意构造和利用。"这种低门槛的攻击方式显著增加了风险,特别是对未实施严格输入过滤的生产环境聊天机器人和智能代理。
修复方案
LangChainGo维护团队已迅速采取行动修复漏洞。补丁版本新增了防止模板注入的安全功能。CERT/CC表示:"新增的RenderTemplateFS函数支持安全文件模板引用,并默认阻止文件系统访问。"
开发者应立即升级至最新版LangChainGo。无法立即升级的用户应限制提示词输入来源为可信渠道,并监控可疑的提示词活动。
参考来源:
CVE-2025-9556 (CVSS 9.8):Critical Vulnerability in LangChainGo Puts LLM Apps at Risk
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)