CVE-2026-92983: LMDeploy: session leak in DistServe enables DoS via OOM
HIGHCISA: TRACK*LMDeploy through 0.17.0, when run in DistServe prefill/decode disaggregation mode, never releases scheduler sessions because the proxy uses user-facing session IDs instead of internal scheduler keys. Any unauthenticated attacker who can reach the proxy endpoint can send ordinary completion requests until metadata and memory pile up and the prefill worker is OOM-killed, taking down LLM inference (CVSS 7.5, availability only; no confidentiality or integrity impact). Likelihood of exploitation is currently moderate to low: EPSS is 0.66% (top 50%), the CVE is not in CISA KEV, no public exploit or Nuclei template exists, and CISA SSVC says TRACK*. Exploitation needs no skill, though, and the attack traffic looks like normal inference calls, so any internet-exposed or flat-network DistServe deployment is an easy target. Check whether you run DistServe mode, restrict proxy access behind authentication and rate limiting, monitor prefill worker memory, and track upstream issue #4967 for a fixed release since no patched version is confirmed in the data.
What is the risk?
Medium-high for affected deployments, low for the general population. The vulnerability is network-reachable, needs no authentication, no privileges and no user interaction, and has low complexity (CVSS 7.5, A:H). Exposure is limited to DistServe prefill/decode disaggregation setups, which are a niche but growing pattern in large-scale LLM serving. Exploitation likelihood data is modest (EPSS 0.00658, not in KEV, no public exploit, no scanner template, SSVC TRACK*). Impact is limited to availability, but a repeatable OOM kill of the prefill worker can cause sustained outage of inference services. Dependent and downstream counts are unknown, so blast radius cannot be quantified.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| LMDeploy | pip | — | No patch |
Do you use LMDeploy? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Identify LMDeploy deployments (pip package lmdeploy) at version 0.17.0 or earlier that use DistServe/PD disaggregation. 2) Upgrade to a release that fixes the session ID handling once available; monitor GitHub issue #4967 and the project's releases, as the data does not confirm a patched version. 3) Until then, do not expose the DistServe proxy to untrusted networks; place it behind an API gateway or reverse proxy that enforces authentication, per-client rate limits and request quotas. 4) Set container or cgroup memory limits and automatic restarts for prefill workers, and consider scheduled worker recycling as a stopgap. 5) Detection: alert on steadily growing prefill worker memory without matching traffic growth, OOM-kill events, repeated worker restarts, and spikes of completion requests from a single source to the proxy. 6) Consider moving to non-disaggregated serving mode if DistServe is not essential.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-92983?
LMDeploy through 0.17.0, when run in DistServe prefill/decode disaggregation mode, never releases scheduler sessions because the proxy uses user-facing session IDs instead of internal scheduler keys. Any unauthenticated attacker who can reach the proxy endpoint can send ordinary completion requests until metadata and memory pile up and the prefill worker is OOM-killed, taking down LLM inference (CVSS 7.5, availability only; no confidentiality or integrity impact). Likelihood of exploitation is currently moderate to low: EPSS is 0.66% (top 50%), the CVE is not in CISA KEV, no public exploit or Nuclei template exists, and CISA SSVC says TRACK*. Exploitation needs no skill, though, and the attack traffic looks like normal inference calls, so any internet-exposed or flat-network DistServe deployment is an easy target. Check whether you run DistServe mode, restrict proxy access behind authentication and rate limiting, monitor prefill worker memory, and track upstream issue #4967 for a fixed release since no patched version is confirmed in the data.
Is CVE-2026-92983 actively exploited?
No confirmed active exploitation of CVE-2026-92983 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-92983?
1) Identify LMDeploy deployments (pip package lmdeploy) at version 0.17.0 or earlier that use DistServe/PD disaggregation. 2) Upgrade to a release that fixes the session ID handling once available; monitor GitHub issue #4967 and the project's releases, as the data does not confirm a patched version. 3) Until then, do not expose the DistServe proxy to untrusted networks; place it behind an API gateway or reverse proxy that enforces authentication, per-client rate limits and request quotas. 4) Set container or cgroup memory limits and automatic restarts for prefill workers, and consider scheduled worker recycling as a stopgap. 5) Detection: alert on steadily growing prefill worker memory without matching traffic growth, OOM-kill events, repeated worker restarts, and spikes of completion requests from a single source to the proxy. 6) Consider moving to non-disaggregated serving mode if DistServe is not essential.
What systems are affected by CVE-2026-92983?
This vulnerability affects the following AI/ML architecture patterns: model serving, LLM inference clusters, prefill/decode disaggregated serving.
What is the CVSS score for CVE-2026-92983?
CVE-2026-92983 has a CVSS v3.1 base score of 7.5 (HIGH). The EPSS exploitation probability is 0.66%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0029Denial of AI ServiceAML.T0040AI Model Inference API AccessAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
InternLM LMDeploy through 0.17.0 in DistServe prefill/decode disaggregation mode fails to release scheduler sessions because the proxy uses user-facing session IDs instead of internal scheduler keys. Unauthenticated attackers can send completion requests to the proxy endpoint that accumulate unreleased scheduler metadata and memory until the prefill worker is out-of-memory killed.
Exploitation Scenario
An attacker discovers an exposed LMDeploy DistServe proxy through internet scanning or from a leaked internal endpoint list. Without credentials, they send a steady stream of small completion requests to the proxy. Each request creates a scheduler session on the prefill worker that is never released, because the proxy tries to free it using the user-facing session ID rather than the internal scheduler key. Memory grows with every request until the kernel OOM-kills the prefill worker, and the inference service goes down. The attacker repeats the process after each restart to keep the service unavailable.
Weaknesses (CWE)
CWE-772Missing Release of Resource after Effective LifetimePrimaryCWE-772Missing Release of Resource after Effective LifetimeCWE-772 — Missing Release of Resource after Effective Lifetime: The product does not release a resource after its effective lifetime has ended, i.e., after the resource is no longer needed.
- [Requirements] Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. For example, languages such as Java, Ruby, and Lisp perform automatic garbage collection that releases memory for objects that have been deallocated.
- [Implementation] It is good practice to be responsible for freeing all resources you allocate and to be consistent with how and where you free resources in a function. If you allocate resources that you intend to free upon completion of the function, you must be sure to free the resources at all exit points for that function including error conditions.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
Timeline
Related Vulnerabilities
CVE-2025-664559.8LMDeploy: pickle deserialization RCE in DistServe
Same package: lmdeployCVE-2026-1197069.8LMDeploy: unauthenticated RCE via pickle in /update_weights
Same package: lmdeployCVE-2025-599539.8LMDeploy: unsafe pickle deserialization allows RCE
Same package: lmdeployCVE-2026-768509.8LMDeploy: RCE via unauth pickle deserialization
Same package: lmdeployCVE-2026-336258.8LMDeploy: eval() injection via malicious model config
Same package: lmdeploy