Summary
CVE-2026-93839 is a critical authentication bypass (CWE-306: Missing Authentication for Critical Function) affecting LightLLM, ModelTC’s Python-based LLM inference and serving framework, in all versions through 1.2.0. The flaw resides in the PD (Prefill-Decode) Master’s /pd_register WebSocket endpoint, which accepts node-registration requests without verifying the requester’s identity or validating that the claimed peer address actually belongs to the connecting client. The issue carries a CVSS v3.1 base score of 9.8 (Critical) and a CVSS v4.0 base score of 9.3 (Critical), reflecting its unauthenticated, network-exploitable nature and high impact on confidentiality, integrity, and availability.
Technical details
- Root cause: The
/pd_registerWebSocket handler (register_and_keep_alive()inlightllm/server/api_http_pd.py) callswebsocket.accept()and begins processing the client’s registration JSON before performing any authentication check. The PD Master trusts theclient_ip_portvalue supplied in the JSON payload instead of validating it against the actual TCP peer address of the WebSocket connection. - Trigger conditions: Any unauthenticated party with network access to the PD Master’s WebSocket listener can open a connection to
/pd_registerand submit a crafted JSON registration message. - Attack vector: Network (remote, no authentication or user interaction required, low attack complexity).
- Impact:
- Prompt disclosure: An attacker can register a rogue prefill/decode node so that subsequent user prompts routed to the cluster are delivered in plaintext to the attacker-controlled socket.
- Denial of service: Registering a node with the same address as a legitimate one silently overwrites and removes the legitimate node from the routing pool, disrupting inference traffic.
- Server-side request forgery (SSRF): Attacker-supplied node addresses are interpolated directly into the PD Master’s health-check requests without validation, allowing it to be coerced into issuing HTTP requests to arbitrary internal network addresses.
- Reported to be mechanistically distinct from the previously disclosed pickle-deserialization RCE on related PD-mode WebSocket endpoints (CVE-2026-26220); fixing that issue does not remediate this one.
Affected software
- ModelTC LightLLM: all versions up to and including 1.2.0
Severity
- CVSS v3.1: 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: 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: As of this writing, no patched LightLLM release beyond 1.2.0 has been published that resolves this specific issue; the fix remains tracked as an open item in GitHub Issue #1576. Organizations should monitor the official ModelTC/LightLLM repository and releases page for a fix and upgrade as soon as one is available.
- If no patch is available, apply the following network- and configuration-level mitigations:
- Do not expose the PD Master’s
/pd_registerWebSocket endpoint to untrusted networks; restrict access to trusted internal hosts only via firewall/network segmentation. - Place the PD Master behind a service mesh or reverse proxy that enforces mutual TLS or a shared-secret authentication scheme before allowing node registration.
- Monitor logs for unexpected or duplicate node registrations, especially registrations that replace previously active prefill/decode nodes.
- Restrict or allowlist the destinations the PD Master’s health-check mechanism is permitted to contact, blocking requests to private/internal IP ranges (RFC 1918, link-local, loopback).
- Treat any LightLLM deployment reachable from untrusted networks as high risk until an authenticated registration mechanism is confirmed in place.
- Do not expose the PD Master’s

