A critical (CVSS 9.8) deserialization flaw in LightLLM through version 1.2.0 lets an unauthenticated attacker who can reach the Config Server port execute arbitrary code by sending a single malicious WebSocket frame.
What Is It
LightLLM's Config Server exposes a /visual_register WebSocket endpoint with no authentication. The first client frame received on that endpoint is passed directly to pickle.loads(). Because Python's pickle format supports the __reduce__ method, an attacker can craft a serialized payload that runs arbitrary commands during deserialization. Execution happens with the privileges of the Config Server process.
The issue is classified as CWE-502 (Deserialization of Untrusted Data). It was disclosed by VulnCheck and published to NVD on 2026-09-14, currently with a vulnerability status of "Received."
Why It Matters
The CVSS 3.1 base score is 9.8 CRITICAL (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), with a CVSS 4.0 secondary score of 9.3 CRITICAL. Every exploitability factor is maximally favorable to an attacker: network-reachable, low attack complexity, no privileges, and no user interaction. Confidentiality, integrity, and availability impact are all HIGH.
There is no barrier to entry here; no credentials, no victim interaction, and a single frame is enough. Any deployment where the Config Server port is reachable by untrusted networks should be treated as exposed.
What's Vulnerable
- Vendor: ModelTC
- Product: LightLLM
- Affected versions: all versions up to and including 1.2.0 (
<= 1.2.0, semver); default status for other versions is unaffected - Affected component: Config Server
/visual_registerWebSocket endpoint (lightllm/server/config_server/api_http.py)
Patch Status
The supplied source material does not list a fixed version, patch, or vendor remediation guidance. The upstream tracking issue is ModelTC/LightLLM issue #1563. There is no CISA KEV entry for this CVE in the supplied data, so active exploitation is not confirmed and no KEV required action or due date applies. CVSS 4.0 exploit maturity is NOT_DEFINED.
Sources
- NVD, CVE-2026-90919: https://nvd.nist.gov/vuln/detail/CVE-2026-90919
- VulnCheck Advisory; LightLLM through 1.2.0 Unauthenticated RCE via Config Server Pickle Deserialization: https://www.vulncheck.com/advisories/lightllm-through-1.2.0-unauthenticated-remote-code-execution-via-config-server-pickle-deserialization
- Vulnerable code,
api_http.pyL79-L86 (v1.2.0): https://github.com/ModelTC/LightLLM/blob/v1.2.0/lightllm/server/config_server/api_http.py#L79-L86 - Upstream issue #1563: https://github.com/ModelTC/LightLLM/issues/1563
- LightLLM repository: https://github.com/ModelTC/lightllm