A cache salt is meant to separate the histories of distinct inference contexts. The SGLang issue describes a narrower but dangerous failure: a streaming session borrowed cached KV memory under one namespace, then reinserted the same physical row under another after a changed salt, LoRA path or multimodal context. Two logical cache nodes could then…
Inspect the ClaimsCase · DiggingBeagle record
SGLang streaming sessions could reuse one physical KV slot across separate cache namespaces
A cache salt is meant to separate the histories of distinct inference contexts. The SGLang issue describes a narrower but dangerous failure: a streaming session borrowed cached KV memory under one namespace, then reinserted the same physical row under another after a changed salt, LoRA path or multimodal context.
Public disclosure: Nov 9, 2026
Maintainer/reporter issue and proposed fix for shared serving cache ownership; public evidence does not establish actual secret exfiltration.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- not established
- Evidence
- Grade C
- AI role
- AGAINST AI
Basis and provenance
An open maintainer/reporter issue describes aliasing and a proposed repair; a cross-tenant output leak and affected release inventory are not proven. An impact band is not assigned because the available Claims do not establish a comparable verified severity or quantified harm.
Assessed Nov 12, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-R239-078-CORE · SGLang streaming session reuses physical KV cache across changed namespace on abort, creating cross-tenant cache ownership collision
At a glance
The observed effect is limited to the study or disclosed setting; deployment and independent impact remain unestablished.
Read the implicationsReproducible cross-principal output disclosure, affected released builds and accepted final fix are unconfirmed.
Limits and uncertaintyFull account
A cache salt is meant to separate the histories of distinct inference contexts. The SGLang issue describes a narrower but dangerous failure: a streaming session borrowed cached KV memory under one namespace, then reinserted the same physical row under another after a changed salt, LoRA path or multimodal context.
Two logical cache nodes could then reference the same physical slot. Eviction could free that slot while a second namespace still considered it live, exposing subsequent requests to overwritten context. The issue and proposed patch document an ownership/correctness bug, not a reproduced theft of another tenant’s secret. The fix proposal binds a session to its initial cache namespace and refuses changing it while memory is borrowed.
Logical namespace separation does not protect data when two keys share the same underlying memory ownership. The public issue demonstrates a plausible cache integrity and cross-principal isolation problem, but there is no independently verified output of one tenant's secret into another. The proposed repair must be tested for the borrow, abort, evict and reuse sequence before claiming resolved confidentiality.
Mechanism and trust boundary
- 01
A streaming inference session initially borrows a KV-cache row under one namespace or salt.
- 02
A later turn changes the namespace while the original physical row remains borrowed.
- 03
Abort and eviction can reinsert and then free aliased physical slots still reachable through another logical cache node.
Claims & evidence
CLM-R239-078-CORESGLang issue #49361 describes physical KV-cache aliasing across distinct streaming-session namespaces, with eviction capable of reusing a slot still referenced by another cache node.supported
Basis: reported finding
- supportsSGLang streaming session reuses physical KV cache across changed namespace on abort, creating cross-tenant cache ownership collisionprimary disclosure
GitHub issue #49361, namespace change, abort, eviction and use-after-free sequence
Implications
The observed effect is limited to the study or disclosed setting; deployment and independent impact remain unestablished.
Controls and mitigations
- Keep physical KV ownership scoped to one immutable namespace; add tests for abort, eviction, LoRA and multimodal salt changes; separate tenants in hardware or process isolation for high-trust contexts.
Unknowns and contradictions
- Reproducible cross-principal output disclosure, affected released builds and accepted final fix are unconfirmed.
Sources and citation
Material revision history
- Nov 12, 2026 · Published version · first publication · revision 241