Skip to main content

SGLang CVE-2026-7301

| EUVDEUVD-2026-30765 CRITICAL
Deserialization of Untrusted Data (CWE-502)
2026-05-18 certcc GHSA-gwv6-pq6m-p3rq
9.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
9.8 CRITICAL

Default 0.0.0.0 bind exposes an unauthenticated pickle sink over the network with no user interaction, and arbitrary code execution yields full C/I/A loss, so AV:N/AC:L/PR:N and C/I/A:H.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
Analysis Generated
Jul 23, 2026 - 18:02 vuln.today
CVE Published
May 18, 2026 - 10:38 nvd
UNKNOWN (no severity yet)
CVE Published
May 18, 2026 - 10:38 cve.org
CRITICAL 9.8

DescriptionCVE.org

SGLangs multimodal generation runtime scheduler's ROUTER socket binds to 0.0.0.0 by default and contains a sink that calls pickle.loads() on incoming messages, enabling RCE when exposed to the internet.

AnalysisAI

Unauthenticated remote code execution affects SGLang, an LLM/multimodal inference-serving framework, at version 5.10, where the generation runtime scheduler's ZeroMQ ROUTER socket binds to 0.0.0.0 by default and deserializes incoming messages with pickle.loads(). Any attacker who can reach the exposed scheduler port can send a crafted pickle payload to execute arbitrary code on the host with full confidentiality, integrity, and availability impact. There is no public exploit identified at time of analysis, though a vendor-independent technical writeup ('three RCEs in sglang') describes the flaw; EPSS is low (0.05%) and SSVC records no observed exploitation, but the issue is rated automatable with total technical impact.

Technical ContextAI

SGLang is a high-performance serving runtime for large language and multimodal models that uses a multi-process scheduler architecture, with inter-process/inter-node coordination commonly implemented over ZeroMQ sockets. The vulnerable component is the scheduler's ROUTER socket, which is bound to the wildcard address 0.0.0.0 (all interfaces) rather than loopback, and a message-handling sink that passes attacker-controllable bytes directly into Python's pickle.loads(). This maps to CWE-502 (Deserialization of Untrusted Data): pickle is not a safe format for untrusted input because unpickling can invoke arbitrary object constructors and __reduce__ methods, turning any received message into code execution. The affected product is identified by CPE cpe:2.3:a:sglang:sglang and reported affected version sglang 5.10 (EUVD-2026-30765).

RemediationAI

No vendor-released patch version is identified at time of analysis, so prioritize network-level compensating controls: bind the scheduler ROUTER socket to loopback (127.0.0.1) or a trusted private interface instead of 0.0.0.0, and firewall/block external access to the SGLang scheduler ZeroMQ port so it is reachable only from the model-serving cluster's private subnet - the trade-off is that legitimate multi-node deployments must explicitly allowlist peer nodes rather than relying on open binding. Place SGLang behind an authenticated reverse proxy or service mesh and never expose the runtime directly to the internet; monitor the sgl-project GitHub repository (https://github.com/sgl-project/sglang) and the disclosure at https://antiproof.ai/blog/three-rces-in-sglang/ for an official fixed release, then upgrade to it once published and re-verify the socket bind address. Because the root cause is unsafe pickle deserialization (CWE-502), no configuration fully removes risk if the port remains reachable, making network isolation the essential control until a patched version is available.

More in Sglang

View all
CVE-2026-15969 CRITICAL
9.8 Jul 30

Remote code execution in SGLang (versions up to and including 0.5.15) allows unauthenticated attackers to run arbitrary

CVE-2026-3059 CRITICAL
9.8 Mar 12

SGLang's multimodal generation module deserializes untrusted data with pickle.loads() over an unauthenticated ZMQ broker

CVE-2026-3060 CRITICAL
9.8 Mar 12

SGLang's encoder parallel disaggregation system is vulnerable to unauthenticated RCE through pickle deserialization in t

CVE-2026-7304 CRITICAL
9.8 May 18

Unauthenticated remote code execution in SGLang (the LLM/multimodal generation serving runtime) affecting version 5.10 a

CVE-2026-5760 CRITICAL
9.8 Apr 20

Remote code execution in SGLang 0.5.9's /v1/rerank endpoint allows unauthenticated attackers to execute arbitrary code b

CVE-2026-15976 CRITICAL
9.8 Jul 30

Remote code execution in SGLang (versions up to and including 0.5.15) allows attackers to run arbitrary code on the infe

CVE-2026-86793 CRITICAL
9.8 Sep 11

We need answer JSON only. Need synthesize. Need obey all rules. Let's parse input. CVE-2026-86793 description: SGLang a

CVE-2026-15971 CRITICAL
9.8 Jul 30

Remote code execution in SGLang (versions ≤ v0.5.15) allows attackers to achieve arbitrary code execution through the op

CVE-2026-14890 CRITICAL
9.1 Jul 16

Unauthenticated remote code execution in SGLang (versions 0 through 0.5.14) arises when the expert-parallel backup subsy

CVE-2026-7302 CRITICAL
9.1 May 18

Arbitrary file write in SGLang's multimodal generation runtime (version 5.10) allows a remote, unauthenticated attacker

CVE-2026-3989 HIGH
7.8 Mar 12

High severity vulnerability in SGLang. SGLangs `replay_request_dump.py` contains an insecure pickle.load() without valid

CVE-2026-15978 HIGH
7.5 Jul 30

SGLang versions up to and including v0.5.15 expose unauthenticated network endpoints that allow complete model weight ex

Share

CVE-2026-7301 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy