TL;DR: Three unsafe deserialization flaws in SGLang, including two unauthenticated remote code execution paths that trigger when exposed multimodal or disaggregation features accept network input, plus a third crash-dump replay issue tied to malicious .pkl files, were found by Orca Security. The broader lesson is that AI serving frameworks still treat untrusted bytes as trusted control flow, which makes runtime trust boundaries the real security control.
Editorial analysis by NHI Mgmt Group, based on content published by Orca Security: “Pickle in the Pipeline: Critical RCE Vulnerabilities in SGLang’s LLM Serving Framework”.
Key questions
Q: What breaks when AI serving frameworks deserialize untrusted network data?
A: The trust boundary collapses before the application can validate the request.
Q: Why do exposed AI brokers create remote code execution risk?
A: Because the broker often receives traffic before any application-level policy check and passes it directly into a deserializer.
Q: What are the signs that an AI service has already been abused through deserialization?
A: Look for unexpected shell processes, unusual file writes under the AI runtime account, and outbound connections that do not match normal inference traffic.
Practitioner guidance
- Lock down AI broker exposure Keep ZMQ broker ports off untrusted networks and bind AI-serving control channels to localhost or tightly segmented internal ranges only.
- Eliminate unsafe deserialization paths Inventory every pickle.loads() and pickle.load() path in AI serving code, scripts, and utilities, then replace them with safer formats such as JSON, msgpack, or Protocol Buffers.
- Disable unused multimodal and disaggregation features Turn off features that open broker or encoder transfer paths when the deployment only needs text inference, and verify that startup flags match the intended runtime scope.
Bottom line: Unsafe deserialization turned SGLang network input and replay files into execution paths, which is why the issue is a trust-boundary failure rather than a narrow parser bug.
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Untrusted deserialization is an identity boundary failure, not just a coding bug. When an AI serving stack accepts bytes over the network and turns them into live objects with pickle, it collapses the distinction between transport and execution. That means the trust decision happens too late, after the payload has already crossed into process context. Practitioners should treat deserialization as an authorization boundary for machine traffic, not a utility function.
A few things that frame the scale:
- AI-related credential leaks surged 81.5% year-over-year in 2025, with the surrounding AI infrastructure leaking 5x faster than core LLM providers, according to the State of Secrets Sprawl 2026.
- The average time to mitigate a leaked secret is 36 hours, highlighting the operational burden of manual remediation processes, according to the 2024 State of Secrets Management Survey.
A question worth separating out:
Q: Should teams handle replay utilities like production attack surfaces?
A: Yes. Any utility that loads serialized objects can execute attacker-controlled code if the file origin is not tightly governed. Replay scripts, debugging helpers, and crash-dump tools should be restricted, audited, and tested with the same caution as live services whenever they consume .pkl or similar formats.
👉 Read our full editorial: SGLang pickle RCE shows how AI serving stacks fail