SGLang CVE-2026-86793: unauthenticated RCE on your GPU box
SGLang's SafeUnpickler can be bypassed through an unauthenticated endpoint for full RCE. No patch at disclosure. How to close it on a self-hosted inference server.
If you self-host models on SGLang, you have a job today. CVE-2026-86793, published September 11, lets an unauthenticated HTTP request execute code on the host running your inference server — the box with your GPUs, your model weights, and usually a cloud credential or two. There was no patch at disclosure. The fix is configuration, and it takes an afternoon.
What actually happened
SGLang exposes /update_weights_from_tensor, an endpoint that accepts pickled tensor data. Pickle deserialization is remote code execution by design, which is why SGLang added a SafeUnpickler in v0.5.4 to fix an earlier bug, CVE-2025-10164.
The new CVE is a bypass of that guard. Per VicOne, whose researcher Reuel Magistrado found it, the allowlist matches on the prefix builtins. — permitting any builtin not explicitly blocked — while the deny list omits __import__ and getattr. Chain those two and you reach any function in any importable module without ever tripping the filter. The report's summary: an attacker can use them "as a gadget chain to reach any function in any importable module...without ever triggering the denylist." The end of the chain is os.system().
Two caveats worth stating plainly. The endpoint is only unauthenticated when no auth keys are configured, which is the default posture on a lot of internal deployments. And the version range is not settled: VicOne's report says 0.5.14 and earlier, while the CVE record lists affected versions through 0.5.18. Treat every deployment as affected until maintainers publish a fixed release. CERT/CC assigned the CVE; no CVSS score has been published.
Why an unauthenticated inference RCE matters for your business
Self-hosting was supposed to be the safe choice. You kept the data in your VPC, you avoided the token bill, you owned the stack. That reasoning is still right — and it means the security of the serving layer is now yours too, and most teams have not treated an inference server like the internet-facing service it often is.
Think about what that host holds. Model weights you may have paid to fine-tune. The instance role, which in a default Terraform module usually reaches more S3 than anyone intended. Whatever sits in the request logs. An RCE there is not a model problem, it is a lateral movement problem.
Do three things. Turn on SGLang's auth keys — this alone closes the unauthenticated path. Put the serving port behind a security group or service mesh policy that admits only your application tier, never 0.0.0.0/0 and never the office VPN by default. Then check egress: an inference box needs to reach your object store and your telemetry endpoint, and very little else, so a restrictive egress rule turns a successful RCE into a much worse day for the attacker. Pin the SGLang version in your image build and subscribe to the repo's advisories, because the patch will land and you want to notice.
Key takeaways
- CVE-2026-86793 bypasses SGLang's SafeUnpickler for full RCE via /update_weights_from_tensor
- The allowlist accepts any builtins. prefix while the deny list omits __import__ and getattr
- The endpoint is unauthenticated when no auth keys are set, which is a common internal default
- Version range is disputed: the researcher says 0.5.14 and earlier, the CVE record says through 0.5.18
- No patched release existed at disclosure and no CVSS score has been published
- Mitigate now: enable auth keys, restrict the serving port to your app tier, and lock down egress
We treat your inference server like production, because it is. Auth on every endpoint, network policy that names what can talk to what, scoped instance roles, and egress rules that contain a bad day. See how we deploy self-hosted AI, or send us your serving setup and we will tell you what an RCE would reach.
Sources: VicOne security research, CVE-2026-86793 record.
- #security
- #self-hosted-ai
- #sglang
- #rce
- #inference
Tommy Rush — Founder, Rush Commerce
Operator turned builder. 15+ years running operations — now shipping the systems businesses run on. More
Get The Rush Report weekly — one email, zero fluff.
Keep reading
An AI agent swarm took 440 PaperCut servers
GreyNoise traced hundreds of AI agents compromising 440 PaperCut servers at 395 organizations in 48 countries. First RCE in under four hours. What it changes.
Read itOpenAI agents flooded RubyGems with 2,000 packages
A new report traces 2,000+ malicious RubyGems uploads and a RubyDoc RCE to OpenAI agents. What package registry abuse by agent swarms means for your dependency chain.
Read it