CVE-2026-7301: SGLang 调度器通过 Pickle 反序列化 RCE
CVE-2026-7301 (CVSS 9.8) 允许攻击者通过向调度器的 ROUTER 套接字发送恶意 pickle 负载来在 SGLang 服务器上执行任意代码,该套接字绑定到 0.0.0.0...

CVE-2026-7301: SGLang Scheduler RCE via Pickle Deserialization
执行摘要
一个被识别为CVE-2026-7301(CVSS 9.8)的关键远程代码执行漏洞影响SGLang多模态生成运行时。该缺陷存在于调度器的ROUTER套接字中,该套接字默认绑定到0.0.0.0,并通过一个没有进行清理的汇点处理传入消息,该汇点调用Python的pickle.loads()。任何能够到达暴露套接字的未经身份验证的攻击者都可以发送一个精心设计的pickle有效载荷,以在主机上实现任意代码执行。该漏洞由反证研究团队在一篇博客文章中披露,文章详细描述了SGLang中的三个RCE漏洞。截至发布时,尚未报告有活跃利用的证据,但默认的网络暴露使得任何运行SGLang的互联网基础设施的组织都需要优先修补此漏洞。
技术分析
CVE-2026-7301是SGLang运行时关键路径中典型的不安全反序列化漏洞。调度组件负责协调跨工作节点的多模态生成任务,使用ZeroMQ ROUTER套接字进行进程间通信。根据反证披露,此套接字默认绑定到0.0.0.0(所有网络接口),这意味着任何能够到达调度器端口的主机都可以发送消息。
处理传入ROUTER消息的汇点函数在消息有效载荷上调用pickle.loads(),没有任何完整性检查或类型验证。Python的pickle模块对于不受信任的数据来说是非常不安全的——它可以反序列化任意对象,并在反序列化过程中通过__reduce__或__reduce_ex__方法执行任意代码。攻击者如果制作了一个恶意的pickle有效载荷,可以触发执行系统命令、放置后门或外泄数据。
CVSS 9.8的评分反映了网络可利用性(AV:N)、低攻击复杂性(AC:L)、不需要特权(PR:N)和不需要用户交互(UI:N)的组合。对机密性、完整性和可用性的影响被评为完全(C:H/I:H/A:H)。
SGLang是一个开源框架,用于服务大型语言模型和多模态模型,通常部署在研究实验室、AI初创企业和企业推理管道中。调度器是一个核心组件,必须能够被工作节点访问,许多部署可能会无意中将ROUTER套接字暴露给互联网,这是由于默认的绑定行为。
反证团队没有发布概念验证漏洞利用代码,但是基本技术——制作一个pickle有效载荷来执行代码——是有充分记录的,并且很容易实现。任何具有基本Python知识和网络访问调度器端口的攻击者都可以利用这个漏洞。
缓解措施与建议
运行SGLang的组织应立即采取以下行动:
-
更新SGLang到最新的修补版本。反证披露表明,供应商已在最近的版本中解决了这个问题。检查SGLang GitHub存储库或发布说明,以找到修复CVE-2026-7301的特定版本。
-
限制对调度器ROUTER套接字的网络访问。即使在修补后,套接字也不应该暴露在互联网上。使用防火墙规则或网络分割来限制访问权限,仅限于受信任的工作节点和管理主机。默认的
0.0.0.0绑定应在配置中被覆盖,以绑定到特定的内部IP或Unix套接字。 -
监控异常pickle流量。如果无法立即进行修补,防御者应监控网络流量到调度器端口的异常大或畸形消息,这些消息可能表明有利用尝试。端点检测和响应(EDR)规则也可以标记在接收网络数据后生成shell或执行意外二进制文件的过程。
-
对SGLang进程应用最小权限原则。如果调度器以root或高权限用户身份运行,RCE将使攻击者获得完全控制权。在专用的低权限用户账户下运行服务可以限制影响范围。
没有一种变通方法可以在不修补的情况下完全缓解漏洞,因为不安全的反序列化发生在任何身份验证或授权检查之前。
订阅更新
将最新的网络安全资讯直接发送到您的邮箱。

