---
id: CVE-2026-119706
title: >-
  LMDeploy 0.9.0 through 0.18.0 Unauthenticated RCE via /update_weights Pickle
  Deserialization
summary: >-
  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…
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-502
vendor: InternLM
product: lmdeploy
affected:
  - lmdeploy >= 0.9.0 <= 0.18.0
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: total
  timestamp: '2026-10-30T15:39:38.070682Z'
exploitAvailable: true
published: '2026-10-30'
updated: '2026-11-02'
sourceUpdated: '2026-11-02T18:29:40.134Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-119706'
references:
  - url: 'https://github.com/InternLM/lmdeploy/issues/4698'
    label: 'GitHub Issue #4698'
  - url: 'https://github.com/InternLM/lmdeploy'
  - url: >-
      https://github.com/InternLM/lmdeploy/blob/v0.18.0/lmdeploy/serve/openai/endpoints/management.py#L55-L60
  - url: >-
      https://github.com/InternLM/lmdeploy/blob/v0.18.0/lmdeploy/turbomind/turbomind.py#L345
  - url: 'https://github.com/InternLM/lmdeploy/pull/4964'
  - url: >-
      https://www.vulncheck.com/advisories/lmdeploy-0.9.0-through-0.18.0-unauthenticated-rce-via-update-weights-pickle-deserialization
    label: >-
      VulnCheck Advisory: LMDeploy 0.9.0 through 0.18.0 Unauthenticated RCE via
      /update_weights Pickle Deserialization
tags:
  - cve.org
  - exploit-available
epss: 0.0103
epssPercentile: 0.6391
ingestedAt: '2026-11-05T19:30:42.775Z'
---

## Overview

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.

## Affected

- `lmdeploy >= 0.9.0 <= 0.18.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
