SGLang 框架曝出严重安全漏洞,攻击者成功利用该漏洞可在受影响系统上实现远程代码执行。该漏洞编号为 CVE-2026-5760,CVSS 评分为 9.8 分(满分 10 分),属于可导致任意代码执行的命令注入漏洞。
漏洞背景
SGLang 是一个面向大语言模型和多模态模型的高性能开源服务框架,其官方 GitHub 项目已被分叉 5500 余次,获得 26100 颗星标。根据 CERT 协调中心(CERT/CC)公告,该漏洞影响重排序端点 /v1/rerank,攻击者可通过特制的 GPT 生成统一格式(GGUF)模型文件在 SGLang 服务上下文中执行任意代码。
攻击原理
CERT/CC 在今日发布的公告中说明:攻击者通过创建恶意的 GGUF 模型文件实施漏洞利用,该文件包含精心构造的 tokenizer.chat_template 参数,其中嵌入了带有触发短语的 Jinja2 服务器端模板注入(SSTI)载荷。当受害者下载该模型并在 SGLang 中加载后,请求触达 /v1/rerank 端点时,恶意模板将被渲染,从而在服务器上执行攻击者的任意 Python 代码,最终实现 SGLang 服务器上的远程代码执行(RCE)。
漏洞发现者 Stuart Beck 指出,根本问题在于代码使用了未沙箱化的 jinja2.Environment() 而非 ImmutableSandboxedEnvironment,这使得恶意模型能在推理服务器上执行任意 Python 代码。
完整攻击链
攻击者创建包含恶意 tokenizer.chat_template 的 GGUF 模型文件,模板中带有 Jinja2 SSTI 载荷。
模板内置 Qwen3 重排序器触发短语,用于激活 entrypoints/openai/serving_rerank.py 中的漏洞代码路径。
受害者从 Hugging Face 等平台下载该模型并在 SGLang 中加载。
当请求访问 /v1/rerank 端点时,SGLang 读取 chat_template 并通过 jinja2.Environment() 渲染。
SSTI 载荷在服务器上执行任意 Python 代码。
关联漏洞
值得注意的是,CVE-2026-5760 与 CVE-2024-34359(又称 Llama Drama,CVSS 9.7 分)属于同类漏洞,后者是 llama_cpp_python Python 包中已修复的高危漏洞。类似攻击面也在去年底于 vLLM 中完成修复(CVE-2025-61620,CVSS 6.5 分)。
缓解措施
CERT/CC 建议:缓解该漏洞的建议方案是使用 ImmutableSandboxedEnvironment 替代 jinja2.Environment() 来渲染聊天模板,这将阻止服务器执行任意 Python 代码。在协调过程中未收到官方响应或补丁。
转载自FreeBuf