{"vuid":"VU#281278","idnumber":"281278","name":"SGLang contains six different vulnerabilities including RCE, data exfiltration, and credential disclosure","keywords":null,"overview":"### Overview\r\n\r\nSix vulnerabilities have been discovered within the SGLang project, including remote code execution (RCE), server-side request forgery (SSRF), local file read, credential leakage, and model weight exfiltration on a target server. Exploitation does not require authentication in most cases, and some vulnerabilities require only network access with no API keys or user credentials. At the time of publication, no patches are available from the project maintainers, and coordination attempts have been unsuccessful.\r\n\r\n### Description\r\n\r\nSGLang is an open-source framework for serving large language models (LLMs) and multimodal AI models, supporting models such as Qwen, DeepSeek, Mistral, and Skywork, and is compatible with OpenAI APIs. Six vulnerabilities have been discovered within the tool and are tracked as follows:\r\n\r\n**CVE-2026-15969**\r\nSGLang contains unauthenticated RCE in `/load_lora_adapter_from_tensors` by bypass of SafeUnpickler’s incomplete denylist, allowing arbitrary command execution through crafted base64-encoded pickle payloads.\r\n\r\n**CVE-2026-15971**\r\nSGLang contains an RCE vulnerability when the optional dumper subsystem is enabled, which allows for a sandbox escape when `DUMPER_SERVER_PORT` is set, enabling code execution on inference requests.\r\n\r\n**CVE-2026-15974**\r\nSGLang contains an SSRF and local file read in the multimodal generation endpoint `/v1/chat/completions` because `image_url` input is  unsanitized, allowing access to internal metadata, secrets, and services.\r\n\r\n**CVE-2026-15976**\r\nSGLang contains a RCE vulnerability when attempting to load model weights from a HuggingFace repository, specifically within the `/update_weights_from_disk`, where `torch.load(..., weights_only=False)` fallback enables pickle deserialization of `.bin` files.\r\n\r\n**CVE-2026-15977**\r\nSGLang contains a credential leakage vulnerability in the `/server_info` endpoint, which returns API keys and SSL keyfile information when only the `--admin-api-key` is configured.\r\n\r\n**CVE-2026-15978**\r\nSGLang contains a model weight exfiltration vulnerability when no API keys are configured, because SGLang will expose two endpoints that allow a remote attacker to trigger distributed weight broadcasting using NCCL and then triggering data transfer, attackers can exfiltrate all model weights.\r\n\r\n### Impact\r\n\r\nIf exploited, these vulnerabilities could allow an unauthenticated attacker to achieve remote code execution, exfiltrate model weights, or overwrite arbitrary files on the host machine running SGLang. Deployments that expose the affected interface to untrusted networks are at the highest risk of exploitation.\r\n\r\n### Solution\r\n\r\nUntil a patch is available, affected users should consider the following mitigations:\r\n\r\n#### Mitigations\r\n\r\n* Restrict access to the service interfaces and ensure they are not exposed to untrusted networks.\r\n* Implement network segmentation and access controls to prevent unauthorized interaction with the vulnerable endpoints.\r\n* Change `SGLANG_USE_PICKLE_IPC` to \"false\" within `environ.py`.\r\n* Disable endpoints not in use to remove potential attack vectors. \r\n\r\nThe SGLang maintainers have begun addressing pickle deserialization vulnerabilities and are working to refactor the code base with `msgpack` to prevent deserialization issues such as CVE-2026-14890, but the `SGLANG_USE_PICKLE_IPC` defaults to `true` within the codebase at the time of writing.\r\n\r\n### Acknowledgements\r\nThanks to the reporter, Apoorv Dayal [apoorvdayal@outlook.com]. This document was written by Christopher Cullen.","clean_desc":null,"impact":null,"resolution":null,"workarounds":null,"sysaffected":null,"thanks":null,"author":null,"public":["https://github.com/sgl-project/sglang/security/advisories/GHSA-2wvm-gjg7-5jfm","https://github.com/sgl-project/sglang/security/advisories/GHSA-h6rf-77vv-9mvj","https://github.com/sgl-project/sglang/security/advisories/GHSA-wf98-gv64-5wrf","https://github.com/sgl-project/sglang/security/advisories/GHSA-x7w5-h7rp-gfp9","https://github.com/sgl-project/sglang/security/advisories/GHSA-jx7q-p32r-7wx8","https://github.com/sgl-project/sglang/security/advisories/GHSA-cpqq-22v3-2wfm","https://thoughts.apoorvdayal.com/posts/sglang-disclosures/"],"cveids":["CVE-2026-15978","CVE-2026-15977","CVE-2026-15976","CVE-2026-15974","CVE-2026-15971","CVE-2026-15969"],"certadvisory":null,"uscerttechnicalalert":null,"datecreated":"2026-07-30T18:09:29.182769Z","publicdate":"2026-07-30T18:09:29.046268Z","datefirstpublished":"2026-07-30T18:09:29.194540Z","dateupdated":"2026-07-30T18:09:40.531324Z","revision":2,"vrda_d1_directreport":null,"vrda_d1_population":null,"vrda_d1_impact":null,"cam_widelyknown":null,"cam_exploitation":null,"cam_internetinfrastructure":null,"cam_population":null,"cam_impact":null,"cam_easeofexploitation":null,"cam_attackeraccessrequired":null,"cam_scorecurrent":null,"cam_scorecurrentwidelyknown":null,"cam_scorecurrentwidelyknownexploited":null,"ipprotocol":null,"cvss_accessvector":null,"cvss_accesscomplexity":null,"cvss_authentication":null,"cvss_confidentialityimpact":null,"cvss_integrityimpact":null,"cvss_availabilityimpact":null,"cvss_exploitablity":null,"cvss_remediationlevel":null,"cvss_reportconfidence":null,"cvss_collateraldamagepotential":null,"cvss_targetdistribution":null,"cvss_securityrequirementscr":null,"cvss_securityrequirementsir":null,"cvss_securityrequirementsar":null,"cvss_basescore":null,"cvss_basevector":null,"cvss_temporalscore":null,"cvss_environmentalscore":null,"cvss_environmentalvector":null,"metric":null,"vulnote":229}