Summary
CVE-2026-93688 is a resource-exhaustion vulnerability (denial of service) affecting SGLang, an open-source LLM serving framework, when deployed in prefill/decode disaggregation mode with the Mooncake KV transfer backend. SGLang versions through 0.5.19 fail to validate bootstrap_room values submitted to the decode engine, allowing an unauthenticated attacker to force unbounded memory allocation on the prefill process until it is killed by the operating system. The flaw carries a CVSS v4.0 base score of 8.7 (High).
Technical details
- Root cause: In SGLang’s Mooncake KV-transfer connector, the prefill-side bootstrap control thread unconditionally creates a
transfer_infos[room]entry for everybootstrap_roomvalue it receives, with no validation that the room corresponds to a legitimate, in-flight request. - Trigger conditions: SGLang must be running in prefill/decode (PD) disaggregation mode using the Mooncake KV transfer backend; the decode engine’s HTTP API must be network-reachable.
- Attack vector: An attacker sends repeated
POST /generaterequests to the decode engine, each carrying a unique, attacker-chosenbootstrap_roomvalue. These orphaned rooms are never cleaned up because the existing cleanup path only fires when KV chunks are actually received, which orphan rooms never get. - Impact: Sustained injection of unique room identifiers causes memory on the prefill process to grow without bound until the kernel OOM killer terminates it, taking down the entire PD-disaggregation deployment. Recovery requires a full restart of the prefill process, and the attack can be repeated indefinitely. No confidentiality or integrity impact has been reported.
Affected software
- SGLang (sgl-project/sglang), all versions through 0.5.19, when configured for prefill/decode disaggregation with the Mooncake KV transfer backend.
Severity
- CVSS v4.0: 8.7 (High) —
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS v3.1: 7.5 (High) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CWE-770: Allocation of Resources Without Limits or Throttling
Mitigation and recommended actions
- Immediate: As of publication, no official SGLang release resolves this issue; a fix is proposed in an open, unmerged pull request against the project’s Mooncake connector (adding admission control, bounded LRU tracking of terminal rooms, and a TTL-based sweeper for orphaned entries). Track the upstream repository and upgrade to a patched release as soon as one is published.
- If no patch is available:
- Do not expose the decode engine’s HTTP endpoint (
/generate) directly to untrusted networks; restrict access to the PD-disaggregation cluster to trusted internal callers only, via network segmentation, firewall rules, or a service mesh/VPN. - Place an authenticating reverse proxy or API gateway in front of decode engine endpoints so only authorized clients can submit generation requests.
- Monitor prefill process memory usage and configure alerting/auto-restart on abnormal growth, and consider running the prefill process under a memory cgroup limit to contain impact and speed recovery.
- Where feasible, disable or avoid running PD-disaggregation with the Mooncake backend on internet-facing deployments until an upstream fix is available.
- Do not expose the decode engine’s HTTP endpoint (

