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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
InternLM lmdeploy
Default version status: unaffected
0.9.0 to ≤ 0.18.0affected
pkg:pypi/lmdeployReferences
- 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 ↗