Executive brief
SGLang, an open-source framework for serving Large Language Models (LLMs), contains a critical security flaw in how it handles model adapter updates. An attacker can send a specially crafted request to the server that bypasses built-in security filters, allowing them to execute arbitrary commands on the underlying operating system. This could lead to a full system takeover, theft of proprietary AI models, or access to sensitive data processed by the AI service. The risk is highest for deployments where the SGLang service is exposed to a network without strict authentication keys configured.
Technical details
A remote code execution vulnerability exists in SGLang's `/load_lora_adapter_from_tensors` endpoint. The root cause is a bypass of the `SafeUnpickler` class, which uses an incomplete denylist to filter dangerous Python objects during deserialization. An unauthenticated attacker can provide a base64-encoded pickle payload containing malicious instructions that evade the denylist, leading to arbitrary command execution. This endpoint lacks an explicit authentication decorator, meaning it defaults to the 'NORMAL' authentication level; if no API keys are configured (a common state in many containerized deployments), the route is accessible without any credentials. The vulnerability affects versions up to and including v0.5.15.
Affected products
- SGLang Project SGLang <= v0.5.15
Timeline
- 2026-04-22: disclosed: Initial disclosure to maintainers via GitHub Security Advisories
- 2026-07-30: advisory: Public disclosure and CERT/CC coordination (VU#281278)