# CVE-2026-15969: SGLang SafeUnpickler bypass RCE in load_lora_adapter_from_tensors

Source: https://junglewise.ai/threats/cve-2026-15969-sglang-safeunpickler-bypass-rce-in-load-lora-adapter-from-tensors  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-07-30. Updated: 2026-07-30  
License: CC BY 4.0 with a link back

CVE-2026-15969 · Severity: info · CVSS 9.8 · Published 2026-07-30

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.

Technologies: [SGLang Project SGLang](https://junglewise.ai/threats/technologies/sglang). Vendors: [SGLang Project](https://junglewise.ai/threats/vendors/sglang-project).

## Quick answers

**Is CVE-2026-15969 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-15969 being exploited in the wild.

**How severe is CVE-2026-15969?** Informational severity, with a CVSS score of 9.8, published 30 July 2026.

**Which products and versions are affected?** SGLang Project SGLang <= v0.5.15.

**Is there a fix for CVE-2026-15969?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-15969 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-15969?** Check whether you run SGLang Project SGLang at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## 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)

## References

- [https://github.com/sgl-project/sglang/security/advisories/GHSA-2wvm-gjg7-5jfm](https://github.com/sgl-project/sglang/security/advisories/GHSA-2wvm-gjg7-5jfm)
- [https://thoughts.apoorvdayal.com/posts/sglang-disclosures/](https://thoughts.apoorvdayal.com/posts/sglang-disclosures/)

## Related threats

- [SGLang uncontrolled memory allocation in Mooncake disaggregation backend](https://junglewise.ai/threats/cve-2026-112270-sglang-through-0-5-22-with-the-mooncake-disaggregation-backend)
- [SGLang Mooncake disaggregation backend unauthenticated denial of service](https://junglewise.ai/threats/cve-2026-112269-sglang-through-0-5-22-with-the-mooncake-disaggregation-backend)
- [SGLang server-side request forgery in prefill/decode disaggregation](https://junglewise.ai/threats/cve-2026-112267-sglang-through-0-5-22-in-prefill-decode-disaggregation-mode)
- [SGLang cache poisoning via untrusted mm_hashes in multimodal prefix cache](https://junglewise.ai/threats/cve-2026-111392-sglang-through-0-5-21-trusts-caller-supplied-mm-hashes-values-as)
- [SGLang code injection in _evaluate_filter()](https://junglewise.ai/threats/cve-2026-111391-sglang-0-5-10-through-0-5-22-contains-a-code-injection)
