Summary
CVE-2026-90919 is a critical unauthenticated remote code execution vulnerability in LightLLM, an open-source LLM inference serving framework maintained by ModelTC. The flaw exists in the Config Server component’s /visual_register WebSocket endpoint, which passes the first data frame received from a client directly into Python’s pickle.loads() without any authentication, validation, or filtering. Because pickle deserialization can trigger arbitrary object-reconstruction logic (via __reduce__), a remote, unauthenticated attacker can send a crafted payload to execute arbitrary code under the privileges of the Config Server process.
Technical details
- Root cause: The
visual_websocket_endpointhandler inlightllm/server/config_server/api_http.pycallspickle.loads()directly on the raw bytes of the first WebSocket frame received from a connecting client. - Trigger conditions: No authentication, session validation, or payload-type/schema checking is performed before deserialization — any client that can open a WebSocket connection to the
/visual_registerendpoint can trigger the vulnerable code path. - Attack vector: Network — an attacker only needs network reachability to the Config Server’s WebSocket listener; no credentials or user interaction are required.
- Impact: Successful exploitation results in arbitrary code execution in the context of the Config Server process. Depending on deployment, this can lead to full host compromise, lateral movement into the broader LLM serving infrastructure, and exposure/tampering of any data or models accessible to that process.
- Weakness class: CWE-502 (Deserialization of Untrusted Data).
Affected software
- Product: LightLLM (ModelTC/lightllm)
- Component: Config Server (
/visual_registerWebSocket endpoint) - Versions: All versions through 1.2.0 (inclusive) that expose the vulnerable
visual_websocket_endpointhandler.
Severity
- CVSS v3.1 Base Score: 9.8 (Critical) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS v4.0 Base Score: 9.3 (Critical) —
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
Mitigation and recommended actions
- Immediate: Upgrade LightLLM to a version that removes or fixes the unsafe deserialization in the Config Server’s
/visual_registerendpoint. Check the ModelTC/lightllm repository and release notes for a version beyond 1.2.0 that addresses this issue, and apply the update as soon as it is available. - If no patch is available:
- Restrict network access to the Config Server’s WebSocket listener to trusted internal hosts only (e.g., via firewall rules, network segmentation, or VPN); do not expose it to the public internet.
- Disable or block the
/visual_registerendpoint if the visual-service-registration feature is not in use. - Front the Config Server with an authenticating reverse proxy or gateway that validates client identity before allowing WebSocket connections to reach the application.
- Monitor for unexpected or malformed WebSocket connection attempts to the Config Server as a potential indicator of exploitation attempts.

