IPBUF安全漏洞报告
English
CVE-2026-7304 CVSS 9.8 严重

CVE-2026-7304 SGLangs远程代码执行漏洞

披露日期: 2026-05-18

漏洞信息

漏洞编号
CVE-2026-7304
漏洞类型
远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SGLangs

相关标签

远程代码执行反序列化SGLangsPythonRCE

漏洞概述

SGLangs多模态生成运行时存在严重的安全漏洞。当启用--enable-custom-logit-processor选项时,攻击者可以在未经身份验证的情况下触发远程代码执行(RCE)。该漏洞的根本原因在于系统对通过dill.loads()加载的Python对象进行反序列化时缺乏必要的验证,导致恶意构造的数据包可被服务端解析并执行任意代码。鉴于该漏洞的CVSS评分高达9.8,且无需用户交互即可利用,对使用受影响版本且开启特定选项的服务器构成极高威胁。

技术细节

该漏洞源于SGLangs在处理特定功能时的不安全反序列化机制。SGLangs是一个用于多模态生成的运行时环境,其提供了--enable-custom-logit-processor选项以支持自定义逻辑处理。然而,在该功能开启状态下,服务端接收来自客户端的数据并直接使用Python的dill库进行反序列化操作。dill库在功能上类似于pickle,能够序列化和反序列化几乎所有的Python对象,但其安全性依赖于被反序列化数据的可信度。由于未对接收到的数据进行签名校验或白名单过滤,攻击者可以构造恶意的序列化数据包发送给目标服务器。当服务器调用dill.loads()解析该数据包时,其中包含的恶意代码(通常定义在对象的__reduce__方法中)会自动被执行。由于攻击向量通过网络(AV:N),且不需要认证(PR:N)和用户交互(UI:N),攻击者可轻易获取服务器最高权限,实现完全的系统控制。

攻击链分析

STEP 1
步骤1:侦察
识别目标是否运行SGLangs服务,并确认是否开启了--enable-custom-logit-processor选项。
STEP 2
步骤2:构造载荷
使用Python的dill库创建包含恶意代码(如反弹Shell)的序列化对象。
STEP 3
步骤3:发送请求
将序列化后的恶意数据包通过网络发送至SGLangs服务的特定接口。
STEP 4
步骤4:执行代码
服务端接收数据并调用dill.loads()进行反序列化,触发__reduce__方法执行任意系统命令。
STEP 5
步骤5:建立控制
攻击者获得服务器权限,可进一步窃取数据、横向移动或部署后门。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import dill import os # Generate malicious payload using dill # This payload attempts to execute 'id' command when deserialized class MaliciousObject: def __reduce__(self): return (os.system, ('whoami',)) payload = dill.dumps(MaliciousObject()) # In a real attack, send this 'payload' byte stream to the vulnerable endpoint # Example request (pseudo-code): # import requests # requests.post("http://target:port/api/logit", data=payload)

影响范围

SGLangs (开启 --enable-custom-logit-processor 选项的版本)

防御指南

临时缓解措施
建议立即检查SGLangs服务启动参数,确认是否启用了--enable-custom-logit-processor选项。如果启用,应立即禁用该选项并重启服务,以阻断攻击路径。在未应用官方补丁前,请勿在暴露于公网的环境中使用该功能。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表