Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed /dumper/configure port
-
DeliverySend crafted filter expression
-
ExploitEscape eval() via re.search __globals__
-
ExecutionInjected Python queued in filter
-
PersistCode runs on next forward pass
-
ImpactArbitrary execution in scheduler process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Eval input sanitization
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the optional debug dumper server to be explicitly enabled by setting the DUMPER_SERVER_PORT environment variable, which is what exposes the unauthenticated /dumper/configure endpoint - this is a non-default configuration and is the single most important limiting factor (reflected as AT:P in the provided CVSS 4.0 vector). Given PR:N in the CVSS vector, no authentication is required once the endpoint is reachable, and no user interaction (UI:N) is needed. The attacker must have network reachability to the configured dumper port, and code execution is not immediate - the injected payload runs on the next forward pass of the scheduler process. Deployments running default configurations without the dumper server enabled are not exposed. |
| Impact | This is a genuine high-priority vulnerability, but its real-world risk is strongly gated by a deployment precondition. The CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N) describes unauthenticated, low-complexity, remote exploitation yielding full technical impact (VC:H/VI:H/VA:H = remote code execution in the scheduler process), which is consistent with the CWE-95 code-injection classification and the described eval() sandbox escape via re.search __globals__. Critically, the vector includes AT:P (attack requirements present), which correctly reflects that exploitation is only possible when the optional debug feature DUMPER_SERVER_PORT is configured - the /dumper/configure endpoint does not exist in a default deployment. No EPSS score was provided in the input, the CVE is NOT listed in CISA KEV, and no public exploit code is referenced, so there is no evidence of active or at-scale exploitation; this is currently a disclosure-stage finding from VulnCheck rather than a confirmed in-the-wild threat. The practical risk therefore splits sharply: for the subset of SGLang operators who have enabled the debug dumper server, this is a critical, trivially exploitable unauthenticated RCE deserving immediate patching; for the majority running default configurations, the attack surface is simply not exposed. No key signals conflict with the description, but the absence of EPSS/KEV/POC data means the exploitation-likelihood dimension is undetermined rather than reassuringly low. |
| Exploit ScenarioDerived | An operator runs SGLang 0.5.10-0.5.22 with the debug dumper enabled (DUMPER_SERVER_PORT set), exposing the unauthenticated /dumper/configure endpoint on the network. A remote attacker who can reach that port sends a crafted filter expression that breaks out of the eval() sandbox via re.search's __globals__, and the injected Python executes in the scheduler process on the next forward pass. No public proof-of-concept is referenced at time of analysis, though the VulnCheck advisory and linked source lines describe the technique in detail. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Python code injection in SGLang 0.5.10 through 0.5.22 allows unauthenticated remote attackers to escape an eval() sandbox in the _evaluate_filter() helper and execute arbitrary Python in the scheduler process. Exploitation is strongly gated: the optional debug dumper server must be explicitly enabled by setting the DUMPER_SERVER_PORT environment variable, which is what exposes the unauthenticated /dumper/configure endpoint; default deployments do not enable it. Once the endpoint is reachable, a crafted filter expression is stored and runs on the next forward pass, giving full code execution with high confidentiality, integrity, and availability impact; no vendor-released patch has been identified at time of analysis, and no public exploit code was identified at time of analysis.
RemediationAI
No vendor-released patch identified at time of analysis - the references point to the upstream tracking issue (https://github.com/sgl-project/sglang/issues/44188) and to the vulnerable source in v0.5.22 rather than to a tagged fixed release, so monitor that issue and the project release notes and upgrade to the first version that explicitly fixes _evaluate_filter() once it ships. The single most effective compensating control is to not enable the debug dumper: unset DUMPER_SERVER_PORT (or remove it from container specs, systemd units, Helm values, and launch scripts) so the /dumper/configure endpoint is never created - this fully removes the attack surface at the cost of losing dumper-based debugging. If the dumper is genuinely needed, bind it to loopback or to an internal-only interface rather than a routable address, and block its port at the host firewall or network policy so only trusted administrative hosts can reach it; the trade-off is that remote debugging requires a tunnel or jump host and the service remains exploitable by anyone who can reach that path. Because execution lands in the scheduler process on the next forward pass, also treat the serving process as a high-value target: run SGLang under a dedicated unprivileged user, in a container with a read-only root filesystem, dropped capabilities, and no access to host mounts or cloud credentials. There is no indication that restricting the filter expression language is a reliable workaround, since the escape is achieved through legitimate Python objects exposed by eval()'s namespace, so network and configuration controls should be treated as the primary mitigations until a patch is available. Users should also confirm whether the exposed port appears in internet scan data and rotate any secrets reachable from the scheduler process if exposure is suspected.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
SGLang is an LLM serving framework, and the flaw lives in its debug utility module, python/sglang/srt/debug_utils/dumper.py (referenced lines ~1309-1320 and ~1380-1401 in v0.5.22). The affected function, _evaluate_filter(), evaluates attacker-supplied filter expressions with Python's eval() under an intended sandbox. CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code, i.e. eval injection) is the root-cause class: the sandbox is escapable because the regular expression module's re.search object exposes a __globals__ attribute, from which an attacker can pivot to module globals and builtins and thereby reach arbitrary Python execution. The injection point is the /dumper/configure HTTP endpoint of the debug dumper server, which is unauthenticated and only exists when the operator sets DUMPER_SERVER_PORT. Because the dumper is wired into the inference pipeline, the injected expression is not executed immediately at configuration time but on the next forward pass inside the scheduler process, meaning the payload runs with the privileges of the serving process. The provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N) matches this reading: network reachable, no privileges or user interaction required, but requiring a non-default deployment precondition (AT:P).
Know when Sglang gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Unauthenticated network-reachable endpoint (PR:N/AV:N/UI:N) yields full RCE in the scheduler (C/I/A:H, S:U); CVSS 3.1 lacks an attack-requirement metric, so the non-default DUMPER_SERVER_PORT precondition is not captured here.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
SGLang 0.5.10 through 0.5.22 contains a code injection vulnerability in _evaluate_filter() that allows remote attackers to execute Python code by escaping the eval() sandbox through re.search __globals__. Attackers can send a crafted filter expression to the unauthenticated /dumper/configure endpoint when DUMPER_SERVER_PORT is set, running code in the scheduler process on the next forward pass.
Articles & Coverage 1
Executive ViewAI
SGLang versions 0.5.10 through 0.5.22 contain a critical code execution vulnerability that affects organizations running the optional debug dumper server. If enabled, this flaw allows remote attackers to execute arbitrary code in the scheduler process, potentially leading to data compromise, service disruption, and lateral movement. No public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis, so leadership should prioritize identifying and disabling this non-default debug feature across all deployments.
Disable the optional debug dumper server by ensuring the DUMPER_SERVER_PORT environment variable is not set. Block network access to the /dumper/configure endpoint. Apply network segmentation and monitor for exploitation attempts.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote code execution in SGLang (versions up to and including 0.5.15) allows unauthenticated attackers to run arbitrary
SGLang's multimodal generation module deserializes untrusted data with pickle.loads() over an unauthenticated ZMQ broker
SGLang's encoder parallel disaggregation system is vulnerable to unauthenticated RCE through pickle deserialization in t
Unauthenticated remote code execution in SGLang (the LLM/multimodal generation serving runtime) affecting version 5.10 a
Remote code execution in SGLang 0.5.9's /v1/rerank endpoint allows unauthenticated attackers to execute arbitrary code b
Remote code execution in SGLang (versions up to and including 0.5.15) allows attackers to run arbitrary code on the infe
Remote code execution in SGLang AI inference servers allows unauthenticated attackers to run arbitrary code through the
Remote code execution in SGLang (versions ≤ v0.5.15) allows attackers to achieve arbitrary code execution through the op
Unauthenticated remote code execution affects SGLang, an LLM/multimodal inference-serving framework, at version 5.10, wh
Unauthenticated remote code execution in SGLang versions through v0.5.20 arises from unsafe pickle deserialization in th
Unauthenticated remote code execution in SGLang 0.5.11 through 0.5.14 occurs when the multimodal generation runtime is l
Unauthenticated remote code execution in SGLang (versions 0 through 0.5.14) arises when the expert-parallel backup subsy
EUVD-2026-102845
GHSA-vfgj-p7f7-r3v8
NVD
CVE.org
Vulnrichment
Exploit-DB