Description
SGLang versions through 0.5.20 contain an unbounded memory allocation vulnerability in handle_staging_req() that fails to validate chunk_idx from ZMQ STAGING_REQ frames in prefill/decode disaggregation deployments. Attackers with access to the decode engine's internal ZMQ rank port can send a frame with an extremely large chunk_idx value, causing the scheduler to allocate memory until the system runs out and terminates the process.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
sgl-project sglang
Default version status: unaffected
0 to ≤ 0.5.20affected
pkg:pypi/sglangReferences
- https://github.com/sgl-project/sglang/issues/39764 ↗
- https://github.com/sgl-project/sglang ↗
- https://github.com/sgl-project/sglang/blob/v0.5.20/python/sglang/srt/disaggregation/common/staging_handler.py#L781 ↗
- https://github.com/sgl-project/sglang/blob/v0.5.20/python/sglang/srt/disaggregation/common/staging_handler.py#L848-L860 ↗
- https://github.com/sgl-project/sglang/blob/v0.5.20/python/sglang/srt/disaggregation/common/conn.py#L1636-L1640 ↗
- https://www.vulncheck.com/advisories/sglang-through-0.5.20-unbounded-memory-allocation-via-staging-req-chunk-idx ↗