Cloudflare: SGLang-feil lot GLM-5.3 lekke andre kunders data i 155 svar
tirsdag 27. oktober · KI-generert · Kilde: Cloudflare
Oppgrader SGLang til v0.5.22 og sjekk at KV-poolen er minst like stor som kontekstvinduet hvis du kjører disaggregert prefill/decode.
155 svar fra GLM-5.3 på Workers AI inneholdt tekst fra andre brukeres økter, skriver Cloudflare i en hendelsesrapport publisert 26. oktober. Alle gjaldt prompter lengre enn 681 280 tokens, og eksponeringen varte fra lanseringen 27. august til modellen ble rettet og satt tilbake i drift 9. september. Sikkerhetsforskeren Gadi Evron fra Knostic meldte feilen via HackerOne 8. september. Cloudflare fant ingen tegn til bevisst utnyttelse.
To feil overlappet. Cloudflare annonserte et kontekstvindu på 1 048 576 tokens, men KV-cache-poolen på prefill-GPU-ene hadde bare plass til 681 280. Teamet kjente til avviket før lansering, men antok at motoren ville returnere en feil. I disaggregert modus gjorde den ikke det: SGLang byttet den for lange prompten med en plassholder på ett token, sendte én side KV-cache til decode-noden og meldte overføringen som fullført. Decode-noden leste så alle de reserverte sidene, der resten fortsatt inneholdt data fra tidligere forespørsler. Klienten fikk HTTP 200 og et sammenhengende svar.
«Vi validerte bare HTTP-statuskoder og motorens ytelse ved lange kontekster, uten å validere modellens output og sammenheng.» — Cloudflare, i hendelsesrapporten
Sidene i KV-cachen nullstilles ikke mellom forespørsler, noe Cloudflare beskriver som vanlig blant inferensmotorer av ytelseshensyn. Poolstørrelsen beregnes ved oppstart ut fra GPU-minnet som er igjen etter at vektene er lastet, mens kontekstlengden er en egen innstilling, og ingenting tvinger dem til å stemme overens. Endrer du kvantisering, tensor-parallellisme eller minnefraksjon, endres poolen også. På én enkelt node returnerte SGLang feil som forventet, så problemet gjelder oppsett med separate prefill- og decode-noder. Fiksen kom i SGLang v0.5.20, med oppfølgere i v0.5.21 (2. oktober) og v0.5.22 (19. oktober).
Hva bør du gjøre?
- Oppgrader disaggregerte SGLang-oppsett til v0.5.22 eller nyere, som inneholder fiksene #36988 og #38935.
- Les KV-poolstørrelsen fra oppstartsloggen på hver prefill- og decode-node etter hver endring i vekter, kvantisering eller parallellisme, og senk kontekstlengden hvis poolen er mindre.
- Slå på
--disaggregation-enable-kv-checksumog--kv-canaryder modellarkitekturen støtter det, og bekreft i loggene at forespørslene faktisk verifiseres.