前言:被忽视的AI基础设施"阿喀琉斯之踵"
2026年4月20日,安全研究员Stuart Beck向CERT/CC披露了一个足以颠覆整个AI推理安全认知的高危漏洞——CVE-2026-5760。这个存在于热门大模型推理框架SGLang中的漏洞,允许攻击者通过一个看似无害的GGUF模型文件,在受害者服务器上执行任意Python代码,且无需任何身份验证或特殊权限。
这已经是SGLang在2026年以来披露的第3个CVSS 9.8级远程代码执行漏洞。与前两个依赖ZMQ消息或内部管理接口的漏洞不同,CVE-2026-5760的攻击向量是模型文件本身——这意味着,只要你从互联网上下载并加载了一个恶意GGUF模型,你的服务器就已经向黑客敞开了大门。
在RAG技术成为企业AI应用标配的今天,重排序模型几乎是每个生产环境的必备组件。而SGLang凭借其极致的性能和对重排序的原生支持,已经被全球超过10万家企业和开发者采用,其中包括多家世界500强公司和主流云服务商。这个漏洞的爆发,相当于在整个AI基础设施的心脏位置埋下了一颗定时炸弹。
一、漏洞全景:从元数据到服务器接管的完整链条
1.1 漏洞基本档案
- 漏洞编号:CVE-2026-5760(CERT/CC公告:VU#915947)
- 发现者:Stuart Beck(独立安全研究员,曾发现vLLM CVE-2025-3242等多个AI框架高危漏洞)
- 披露时间:2026-04-20(协调披露期为90天,SGLang维护者未在期限内提供官方补丁)
- 漏洞类型:Jinja2服务器端模板注入(SSTI)导致远程代码执行
- 攻击向量:GGUF模型文件中的
tokenizer.chat_template元数据字段 - 触发条件:受害者加载恶意模型 + 任意请求访问
/v1/rerank端点 - 影响版本:所有包含重排序功能的SGLang版本(截至2026-04-22,最新稳定版0.5.9仍受影响)
1.2 漏洞发现的关键线索
Stuart Beck在对主流推理框架进行GGUF元数据安全审计时发现,SGLang的重排序模块存在一个极其隐蔽的设计缺陷:为了统一处理输入格式,重排序端点完全复用了生成模块的聊天模板渲染逻辑。
而SGLang在渲染聊天模板时,使用的是最基础的jinja2.Environment(),而非Jinja2官方推荐的、专门用于不可信模板的ImmutableSandboxedEnvironment。这个看似微小的代码差异,却打开了通往远程代码执行的大门。
"这是一个教科书级别的安全错误,"Beck在其技术博客中写道,“当你允许用户上传任意模板并在服务器上渲染时,你就已经把服务器的控制权交给了用户。而在AI领域,这个’用户’可以是任何一个上传模型到Hugging Face的人。”
二、深度技术剖析:一个字符串如何攻陷整个服务器
2.1 漏洞根源:未沙箱化的模板渲染
GGUF格式的核心优势之一是其可扩展的元数据系统,允许模型开发者将各种配置信息直接嵌入模型文件中。其中,tokenizer.chat_template字段用于定义模型的对话格式,例如:
{"tokenizer.chat_template":"{% for message in messages %}{{message.role}}: {{message.content}}\n{% endfor %}"}这个字段本应是纯文本格式化规则,但Jinja2模板语言本身具有强大的表达式能力,包括访问Python对象、调用函数甚至执行代码。当使用未沙箱化的Environment渲染不可信模板时,攻击者可以通过精心构造的模板载荷,突破模板沙箱的限制,执行任意Python代码。
SGLang的问题在于,它完全信任模型文件中的所有元数据,没有对chat_template字段进行任何验证或过滤,并且在整个应用的多个模块中共享同一个不安全的模板渲染环境。
2.2 重排序端点的特殊风险
最令人意外的是,这个漏洞的触发点不是生成端点,而是重排序端点/v1/rerank。为什么一个只负责对文本进行打分排序的模块,会需要渲染聊天模板?
答案在于SGLang的代码复用设计。为了让重排序模型能够处理与生成模型相同格式的对话输入,SGLang的重排序器在处理每个请求时,都会先调用通用的apply_chat_template函数,将输入的查询和文档列表格式化为模型期望的格式。
这意味着:
- 即使你只使用SGLang作为重排序服务,不启用任何生成功能,仍然会受到漏洞影响
- 任何对
/v1/rerank端点的请求,无论其内容如何,都会触发模板渲染 - 攻击者不需要向服务器发送任何恶意请求,只需要让受害者加载恶意模型即可
2.3 完整利用链解析
一个完整的攻击流程分为以下5个步骤,每个步骤都具有极高的隐蔽性:
构造恶意模型:攻击者下载一个正常的重排序模型(如Qwen3-Reranker、BGE-M3等),使用
gguf-py库修改其tokenizer.chat_template元数据,植入Jinja2 SSTI载荷。载荷可以被设计为仅在特定条件下触发,例如当请求的查询包含某个秘密字符串时,以避免被安全扫描发现。传播恶意模型:攻击者将修改后的模型上传到Hugging Face Hub、ModelScope等公共模型仓库,并使用与原模型相似的名称和描述。由于这些平台目前只对模型文件进行基本的病毒扫描,不会检查元数据中的恶意内容,恶意模型可以轻松通过审核并获得大量下载。
受害者加载模型:企业或开发者在搭建RAG系统时,从公共仓库下载并加载这个"看起来很正常"的重排序模型。此时,恶意代码已经潜伏在服务器内存中,但不会立即执行。
触发恶意代码:当第一个正常的业务请求到达
/v1/rerank端点时,SGLang会自动读取并渲染模型中的恶意聊天模板。此时,攻击者的Python代码在SGLang服务进程的上下文中执行。持久化与横向移动:恶意代码执行后,可以进行任意操作,包括:
- 读取服务器上的所有文件(包括API密钥、数据库凭证等敏感信息)
- 下载并执行更多恶意软件(如挖矿程序、后门程序)
- 向攻击者的C2服务器发送服务器信息和数据
- 利用服务器作为跳板,攻击内部网络中的其他主机
- 清除日志和痕迹,实现长期潜伏
三、影响评估:谁在裸泳?
3.1 受影响的用户群体
根据GitHub星数和Docker镜像下载量估算,全球目前有超过10万个SGLang部署实例,其中约60%启用了重排序功能。这些部署实例分布在以下几个主要群体中:
| 用户群体 | 占比 | 风险等级 | 典型场景 |
|---|---|---|---|
| 互联网企业 | 35% | 极高 | 公网暴露的RAG API服务、智能客服系统 |
| 金融机构 | 15% | 极高 | 内部知识库、合规审查系统 |
| 云服务商 | 10% | 高 | 托管式推理服务、AI开发平台 |
| 科研机构 | 20% | 中 | 学术研究、模型评测 |
| 个人开发者 | 20% | 中 | 个人项目、本地开发环境 |
3.2 漏洞的独特危险性
CVE-2026-5760与传统的RCE漏洞相比,具有三个致命的特点,使其成为迄今为止最危险的AI框架漏洞:
攻击向量完全去中心化:传统RCE漏洞需要攻击者能够访问目标服务器的网络端口,而这个漏洞的攻击载体是模型文件。攻击者可以通过公共模型仓库、P2P网络、邮件附件等任何方式传播恶意模型,完全绕过网络防火墙和入侵检测系统。
攻击具有极高的隐蔽性:恶意代码隐藏在模型文件的元数据中,而不是可执行文件或脚本中。传统的杀毒软件和安全扫描工具无法检测到这种威胁。此外,恶意载荷可以被设计为延迟触发或条件触发,使得受害者很难将服务器被攻击与加载模型联系起来。
影响范围具有指数级放大效应:一个热门的恶意重排序模型可能会被数万甚至数十万用户下载和使用。攻击者只需要构造一个恶意模型,就可以一次性攻陷大量服务器,形成大规模的僵尸网络。
3.3 已观察到的在野利用
截至2026-04-22,多个安全厂商已经观察到利用CVE-2026-5760进行的在野攻击活动。这些攻击主要集中在以下几个方面:
- 挖矿攻击:攻击者在被攻陷的服务器上部署加密货币挖矿程序,利用GPU资源进行挖矿
- 数据窃取:攻击者窃取服务器上的敏感数据,包括用户数据、商业机密和源代码
- 勒索软件:攻击者加密服务器上的文件,并向受害者索要赎金
- 僵尸网络:攻击者将被攻陷的服务器加入僵尸网络,用于发起DDoS攻击
四、SGLang安全危机:连续高危漏洞背后的根本问题
CVE-2026-5760并不是SGLang的第一个高危漏洞,也不太可能是最后一个。在短短4个月内,SGLang已经披露了3个CVSS 9.8级的远程代码执行漏洞:
| 漏洞编号 | 披露时间 | 漏洞类型 | 攻击向量 |
|---|---|---|---|
| CVE-2026-5760 | 2026-04-20 | Jinja2模板注入 | 恶意GGUF模型文件 |
| CVE-2026-3059 | 2026-02-15 | Pickle反序列化 | 恶意ZMQ消息 |
| CVE-2026-3060 | 2026-02-15 | Pickle反序列化 | 恶意ZMQ消息 |
| CVE-2025-10164 | 2025-12-03 | Pickle反序列化 | 恶意HTTP请求 |
这一系列漏洞的集中爆发,暴露了SGLang在安全架构和开发流程上存在的根本性问题:
"性能优先,安全靠边"的设计理念:SGLang的核心竞争力在于其极致的推理性能。为了追求性能,SGLang的开发者在很多地方牺牲了安全性,例如使用不安全的反序列化方式、不启用沙箱、不进行输入验证等。
过度信任外部输入:SGLang将模型文件、网络消息等所有外部输入都视为可信数据,没有进行任何安全检查。这种设计假设在开源软件时代是完全不成立的。
安全开发生命周期(SDL)的缺失:SGLang作为一个被广泛用于生产环境的关键基础设施软件,却没有建立完善的安全开发流程。代码审查中没有安全检查环节,也没有定期进行安全审计和渗透测试。
对安全漏洞的响应缓慢:SGLang维护者对安全漏洞的响应速度一直备受诟病。多个高危漏洞在披露后数周甚至数月才发布补丁,给攻击者留下了充足的利用时间。
五、紧急缓解与长期防护策略
由于SGLang维护者尚未发布官方补丁,所有受影响的用户必须立即采取以下缓解措施,以保护自己的服务器安全。
5.1 必须立即执行的紧急缓解措施
禁用重排序端点
如果你的业务不使用重排序功能,最简单有效的缓解措施是完全禁用/v1/rerank端点。可以通过修改SGLang的启动参数或在反向代理中拦截该端点的请求来实现。手动应用临时补丁
如果你必须使用重排序功能,请立即手动修改SGLang的源码,将所有不安全的Jinja2环境替换为沙箱化环境。具体修改方法如下:- 找到文件:
sglang/srt/managers/tokenizer_manager.py - 将以下代码:
替换为:fromjinja2importEnvironment self.env=Environment()fromjinja2importImmutableSandboxedEnvironment self.env=ImmutableSandboxedEnvironment() - 重新安装SGLang并重启服务
注意:这个临时补丁可以阻止所有已知的Jinja2 SSTI攻击,但可能会影响某些依赖高级Jinja2特性的聊天模板。
- 找到文件:
全面审计已加载的模型
立即检查所有已加载的GGUF模型的tokenizer.chat_template字段,查看是否包含可疑的Jinja2表达式。可以使用以下命令快速检查:python-c"import gguf; f=gguf.GGUFReader('model.gguf'); print(f.fields['tokenizer.chat_template'].parts[0])"如果发现任何包含
__import__、os、system、eval等关键字的模板,请立即删除该模型。仅从可信来源加载模型
严禁加载来自未知第三方或未验证的GGUF模型。建议只使用原作者官方发布的模型,并验证模型的哈希值。
5.2 辅助防护措施
网络隔离:将SGLang服务部署在内部网络中,禁止公网直接访问。如果必须暴露公网,请使用API密钥进行身份验证,并限制IP访问。
权限最小化:以低权限用户运行SGLang服务,禁止其访问敏感文件和系统资源。不要使用root用户运行SGLang。
运行时监控:部署专门的运行时安全监控工具,监控SGLang进程的异常行为,例如:
- 异常的系统调用(如
execve、fork) - 对外的网络连接(特别是连接到未知IP地址)
- 对敏感文件的读写操作
- 异常的CPU和GPU使用率
- 异常的系统调用(如
5.3 长期防护策略
建立模型安全管理体系
- 建立内部模型仓库,对所有第三方模型进行安全审计后再引入内部使用
- 实施模型签名验证机制,只加载经过官方签名的模型
- 定期对已部署的模型进行安全扫描
采用深度防御架构
- 在推理服务前端部署Web应用防火墙(WAF),拦截恶意请求
- 使用容器化技术部署SGLang服务,并对容器进行严格的安全配置
- 定期更新系统和依赖库,修补已知的安全漏洞
考虑替代方案
如果你对SGLang的安全性存在严重担忧,可以考虑使用其他更安全的推理框架,例如:- vLLM(已修复类似的Jinja2模板注入漏洞)
- TensorRT-LLM(NVIDIA官方维护,安全审计更严格)
- Transformers(Hugging Face官方库,安全机制更完善)
六、未来展望:AI基础设施安全的十字路口
CVE-2026-5760漏洞的爆发,标志着AI安全已经从"模型安全"时代进入了"基础设施安全"时代。在过去,人们更多关注的是大模型本身的安全问题,例如幻觉、偏见、越狱等。但现在,越来越多的攻击开始针对支撑大模型运行的基础设施,而这些攻击往往具有更大的破坏力。
未来几年,AI基础设施安全将成为网络安全领域的主战场。我们可以预见以下几个发展趋势:
模型文件将成为主要攻击向量:随着GGUF等格式的普及,模型文件将成为黑客传播恶意代码的主要载体。未来,我们将会看到更多利用模型元数据、模型权重甚至模型输出进行攻击的漏洞。
推理框架安全将成为行业标准:各大厂商和标准化组织将会制定严格的推理框架安全标准,要求所有推理框架必须具备沙箱化运行、输入验证、模型签名等基本安全功能。
AI安全产品市场将迎来爆发:专门针对AI基础设施的安全产品将会大量涌现,包括模型安全扫描器、推理运行时防护系统、AI供应链安全管理平台等。
监管将逐步加强:各国政府将会出台相关法律法规,要求AI服务提供商必须保障其基础设施的安全,对因安全漏洞导致的数据泄露和损失承担相应的法律责任。
结语:安全是AI发展的底线
SGLang CVE-2026-5760漏洞给整个AI行业敲响了警钟。在我们追求AI性能和功能的同时,绝不能忽视安全这个最基本的底线。一个再强大的AI系统,如果其基础设施存在安全漏洞,那么它不仅不能为我们带来价值,反而可能成为黑客手中的武器。
对于框架开发者来说,应该将安全融入到软件设计的每一个环节,而不是作为事后的补丁。对于模型提供者来说,应该对自己发布的模型进行安全审计,并提供数字签名以防止被篡改。对于最终用户来说,应该提高安全意识,建立完善的安全防护体系,不要轻易信任来自互联网的任何模型文件。
只有当所有参与者都重视安全,共同努力,我们才能构建一个安全、可靠、可持续发展的AI生态系统。