Κυβερνοασφάλεια
Η Cloudflare λέει ότι σφάλμα στο GLM-5.3 διέρρευσε 155 απαντήσεις μεταξύ συνεδριών διαφορετικών πελατών

Στις 26 Οκτωβρίου 2026, η Cloudflare δημοσίευσε έκθεση για το περιστατικό, αποκαλύπτοντας διαρροή δεδομένων από την κρυφή μνήμη KV μεταξύ αιτημάτων στο μοντέλο GLM-5.3 της πλατφόρμας Workers AI. Ως αποτέλεσμα, 155 απαντήσεις σε ιδιαίτερα μεγάλα προτροπικά μηνύματα περιείχαν δεδομένα από συνεδρίες άλλων πελατών.
Ο ερευνητής ασφάλειας Gadi Evron της Knostic ανέφερε στην Cloudflare το πρόβλημα απομόνωσης μεταξύ πελατών στις 8 Σεπτεμβρίου 2026, μέσω του προγράμματος HackerOne της εταιρείας. Η διαρροή επηρέασε το μοντέλο, το οποίο διατέθηκε ως @cf/zai-org/glm-5.3 από τις 27 Αυγούστου 2026, την ημέρα που το GLM 5.3 κυκλοφόρησε στο Workers AI. Η Cloudflare διόρθωσε το πρόβλημα και επανέφερε το μοντέλο στις 9 Σεπτεμβρίου 2026, ενώ δήλωσε ότι επιβεβαίωσε πως δεν επηρεάστηκε κανένα άλλο μοντέλο που φιλοξενείται στο Workers AI.
Και οι 155 απαντήσεις που επηρεάστηκαν αφορούσαν προτροπικά μηνύματα με περισσότερα από 681.280 διακριτικά. Η Cloudflare δήλωσε ότι, αφού εξαιρέθηκαν οι δικές της δοκιμές και τα αιτήματα του ερευνητή, τα αιτήματα που εντόπισε ταίριαζαν ως προς τον χρόνο και τον όγκο με τη συνήθη χρήση μεγάλου περιβάλλοντος συμφραζομένων και όχι με επανειλημμένη εκμετάλλευση του σφάλματος, και ότι δεν εντόπισε ενδείξεις σκόπιμης εκμετάλλευσής του.
Τα δύο προβλήματα που οδήγησαν στη διαρροή
Το GLM είναι μοντέλο παραγωγής κειμένου της Z.ai, σχεδιασμένο για ροές εργασίας προγραμματισμού με πράκτορες, και ένα από τα πολλά μοντέλα που διατίθενται μέσω του Workers AI. Η Cloudflare εκτελεί το GLM 5.3 με το SGLang, μια μηχανή συμπερασμού ανοικτού κώδικα, σε αποσυνδεδεμένη διαμόρφωση: οι GPU προεπεξεργασίας επεξεργάζονται το προτροπικό μήνυμα και δημιουργούν την κρυφή μνήμη KV του, την οποία στη συνέχεια μεταφέρουν μέσω απομακρυσμένης άμεσης πρόσβασης στη μνήμη (RDMA) και του Mooncake στις GPU αποκωδικοποίησης που δημιουργούν την απάντηση. Η κρυφή μνήμη KV είναι μια κοινόχρηστη δεξαμενή σελίδων σταθερού μεγέθους· οι σελίδες δεν μηδενίζονται μεταξύ αιτημάτων, επομένως η μηχανή είναι υπεύθυνη για την παρακολούθηση του ποιος έχει στην κατοχή του κάθε σελίδα.
Η έκθεση αποδίδει τη διαρροή σε δύο προβλήματα. Το πρώτο ήταν μια λανθασμένη ρύθμιση: η Cloudflare ανέπτυξε το GLM 5.3 με παράθυρο περιβάλλοντος συμφραζομένων 1.048.576 διακριτικών, αλλά η δεξαμενή κρυφής μνήμης KV στις GPU προεπεξεργασίας χωρούσε μόνο 681.280 διακριτικά. Η Cloudflare δήλωσε ότι γνώριζε την ασυμφωνία πριν από την κυκλοφορία, αλλά περίμενε ότι η μηχανή θα επέστρεφε σφάλμα για κάθε προτροπικό μήνυμα που δεν μπορούσε να επεξεργαστεί. Καθώς οι δοκιμές της με μεγάλα περιβάλλοντα συμφραζομένων επέστρεφαν επιτυχείς απαντήσεις, δεν θεωρούσε ότι η ασυμφωνία αποτελούσε πρόβλημα. Η εταιρεία δήλωσε ότι οι δοκιμές της επικύρωναν τους κωδικούς απόκρισης HTTP και την απόδοση της μηχανής σε μεγάλα περιβάλλοντα συμφραζομένων, χωρίς να ελέγχουν την έξοδο και τη συνοχή του μοντέλου, και ότι πλέον ελέγχει απευθείας το μέγεθος της δεξαμενής KV σε σχέση με το μήκος του περιβάλλοντος συμφραζομένων, πριν από την κυκλοφορία οποιασδήποτε αλλαγής σε αποσυνδεδεμένη ανάπτυξη.
Το δεύτερο πρόβλημα ήταν ένα σφάλμα του SGLang στον χειρισμό αιτημάτων που υπερέβαιναν το όριο, κατά τη λειτουργία αποσυνδεδεμένης προεπεξεργασίας και αποκωδικοποίησης. Ένα προτροπικό μήνυμα που δεν χωρούσε στη δεξαμενή επισημαινόταν εσωτερικά ως απορριφθέν και αντικαθιστούνταν από ένα σύμβολο κράτησης θέσης ενός διακριτικού, αλλά η προεπεξεργασία εξακολουθούσε να δημιουργεί κρυφή μνήμη KV για το σύμβολο κράτησης θέσης και να δηλώνει ότι η μεταφορά ολοκληρώθηκε. Στη συνέχεια, ο κόμβος αποκωδικοποίησης δημιουργούσε απάντηση χρησιμοποιώντας παρωχημένες σελίδες της κρυφής μνήμης, οι οποίες εξακολουθούσαν να περιέχουν δεδομένα από προηγούμενα αιτήματα, και ο πελάτης λάμβανε απόκριση HTTP 200 αντί για HTTP 400.
Η ομάδα του SGLang αναφέρει στη δική της συντονισμένη ανάρτηση ότι η διαδρομή απόρριψης σε έναν μόνο κόμβο επέστρεφε σφάλμα, επομένως το πρόβλημα εμφανιζόταν μόνο στην αποσυνδεδεμένη εξυπηρέτηση. Ένας άλλος χρήστης είχε αναφέρει το σφάλμα στο SGLang ως ζήτημα #30233 στις 6 Ιουλίου 2026, κάτι που, όπως δήλωσε η Cloudflare, εντόπισε κατά τη διερεύνηση.
Αντιμετώπιση και αποκατάσταση του περιστατικού
Η Cloudflare άρχισε να επαληθεύει την αναφορά στις 08:00 UTC στις 9 Σεπτεμβρίου 2026 και κήρυξε συμβάν ασφάλειας στις 13:22, αφού η ομάδα Ασφάλειας Προϊόντων αναπαρήγαγε τη διαρροή χρησιμοποιώντας δύο ανεξάρτητους λογαριασμούς μέσα σε 25 λεπτά. Έθεσε το GLM 5.3 σε ιδιωτική λειτουργία στις 14:00, εντόπισε τη βασική αιτία στις 14:35, εφάρμοσε τη διορθωμένη διαμόρφωση σε όλους τους κόμβους προεπεξεργασίας έως τις 14:52, ανακατασκεύασε ολόκληρη την ανάπτυξη με ενημέρωση κώδικα της μηχανής που είχε συντάξει η Cloudflare έως τις 19:04 και επανέφερε το μοντέλο σε δημόσια πρόσβαση στις 19:40. Η σελίδα κατάστασης της Cloudflare κατέγραψε το περιστατικό στο Workers AI ως έναρξη στις 10:25 π.μ. EDT στις 9 Σεπτεμβρίου 2026, αναγνώριση στις 11:02 π.μ. EDT και επίλυση στις 4:09 μ.μ. EDT.
Η διόρθωση της διαμόρφωσης ακολούθησε τη ρύθμιση του GLM 5.2, απελευθερώνοντας αρκετή μνήμη GPU ώστε η δεξαμενή KV της προεπεξεργασίας να χωρά πλέον περίπου 2,04 εκατομμύρια διακριτικά, δηλαδή περίπου το διπλάσιο του μήκους περιβάλλοντος συμφραζομένων των 1.048.576 διακριτικών. Έτσι, κάθε προτροπικό μήνυμα που χωρά στο παράθυρο περιβάλλοντος συμφραζομένων χωρά πάντα και στη δεξαμενή. Η ενημέρωση κώδικα της μηχανής τερματίζει, στην ουρά εισαγωγής της αποσυνδεδεμένης λειτουργίας, ένα αίτημα που εκκρεμεί να απορριφθεί, επιστρέφοντας το αρχικό σφάλμα του, πριν από οποιαδήποτε διαδικασία αρχικοποίησης, εκχώρηση μνήμης ή μεταφορά KV. Η Cloudflare επικύρωσε και τις δύο αλλαγές με το σενάριο αναπαραγωγής του ερευνητή και με τις δικές της δοκιμές με δείκτες canary, προτού επαναφέρει το μοντέλο.
Διορθώσεις στο upstream και συνεχιζόμενες εργασίες
Η Cloudflare υπέβαλε τη διόρθωσή της στο upstream ως αίτημα ενσωμάτωσης #38704 για το SGLang, και οι συντηρητές ενσωμάτωσαν το #38935, το οποίο απορρίπτει τα επηρεαζόμενα αιτήματα κατά την εισαγωγή, ακολουθώντας την προσέγγιση της Cloudflare. Μια σχετική διόρθωση, το #36988, είχε ενσωματωθεί στις 6 Σεπτεμβρίου 2026 για μια συναφή διαδρομή αστοχίας. Η ενημέρωση κώδικα κυκλοφόρησε στο SGLang v0.5.20, ενώ ακολούθησαν οι εκδόσεις v0.5.21, που κυκλοφόρησε στις 2 Οκτωβρίου 2026, και v0.5.22, που κυκλοφόρησε στις 19 Οκτωβρίου 2026. Η Cloudflare συνιστά σε όλους τους διαχειριστές του SGLang να αναβαθμίσουν στην v0.5.22 ή νεότερη έκδοση. Η ομάδα του SGLang αναφέρει ότι η v0.5.21 προστατεύει από προεπιλογή τις αναπτύξεις Mooncake και NIXL για κάθε είδος αστοχίας, ότι οι αναπτύξεις MORI απαιτούν έκδοση βασισμένη στο v0.5.22 και ότι η σειρά εκδόσεων με τις διορθώσεις δεν μεταφέρθηκε σε παλαιότερους κλάδους εκδόσεων.
Η ομάδα του SGLang ανέφερε ότι, σε 21 εκτελέσεις με δύο GPU H100, οι διαφορές στην απόδοση με τις δικλίδες προστασίας κυμαίνονταν εντός ±2%, ενώ όλα τα διαστήματα εμπιστοσύνης 95% περιλάμβαναν το μηδέν. Σε ξεχωριστή δοκιμή 16 εκτελέσεων με δύο GPU H200, το κόστος της προεπιλεγμένης ενεργοποίησης της αναβαλλόμενης αποδέσμευσης KV μετρήθηκε σε −0,38%, με διάστημα εμπιστοσύνης από −2,12% έως +1,36%, το οποίο, όπως ανέφερε η ομάδα, δεν ήταν στατιστικά σημαντικό. Η Cloudflare συναντήθηκε με τους συντηρητές του SGLang στη RadixArk στις 10 Σεπτεμβρίου 2026, εφάρμοσε πρόσθετα μέτρα ενίσχυσης σε όλες τις παραγωγικές εγκαταστάσεις SGLang από τις 11 έως τις 19 Σεπτεμβρίου 2026 και οι συγχωνεύσεις upstream που κάλυπταν τη διόρθωση κατά την αποδοχή αιτημάτων, τα αθροίσματα ελέγχου ανά μεταφορά, τη διατήρηση των επιβεβαιώσεων ακύρωσης και την προεπιλεγμένη ενεργοποίηση της αναβαλλόμενης αποδέσμευσης KV πραγματοποιήθηκαν από τις 16 Σεπτεμβρίου έως τις 12 Οκτωβρίου 2026.
Για άλλους διαχειριστές που χρησιμοποιούν το SGLang σε αποσυζευγμένη λειτουργία, η αναφορά της Cloudflare συνιστά να μετρούν τη δεξαμενή KV σε συνάρτηση με το μήκος του περιβάλλοντος συμφραζομένων σε κάθε κόμβο prefill και decode μετά από κάθε αλλαγή στα βάρη, στην κβαντοποίηση, στον παραλληλισμό ή στο κλάσμα μνήμης· να αναβαθμίσουν σε έκδοση που περιλαμβάνει και τις δύο διορθώσεις κατά την αποδοχή αιτημάτων· να εκτελούν και τους δύο ρόλους με ενεργοποιημένη την αναβαλλόμενη αποδέσμευση KV· να ενεργοποιήσουν τον εντοπισμό αλλοίωσης όπου το υποστηρίζει το μοντέλο· και να ρυθμίσουν τους εξισορροπητές φορτίου έτσι ώστε η αποσύνδεση του πελάτη να μην ακυρώνει ένα αίτημα στη μέση της μεταφοράς.
Η Cloudflare ανέφερε ότι είχε προηγουμένως κατασκευάσει ένα πρωτότυπο σχέδιο που προσθέτει ετικέτα σε κάθε φυσική σελίδα KV και ελέγχει την αντιστοίχιση πριν ο αποκωδικοποιητής διαβάσει την κρυφή μνήμη, και ότι στις δοκιμές η επιβάρυνση ήταν μικρότερη από 1% στην απόδοση και στην καθυστέρηση ουράς. Η εταιρεία δοκίμασε το πρωτότυπο στο GLM 5.2 στα μέσα Αυγούστου 2026, αλλά το απενεργοποίησε λίγο αργότερα λόγω προβλημάτων αξιοπιστίας. Η Cloudflare συνεργάζεται με την ομάδα του SGLang για μια έκδοση παραγωγικής χρήσης ενσωματωμένη στη μηχανή, με το άθροισμα ελέγχου ανά μεταφορά στο αίτημα ενσωμάτωσης #39500 να αποτελεί το πρώτο βήμα. Ανέφερε επίσης ότι αξιοποιεί την εμπειρία της στις τυπικές μεθόδους για να μοντελοποιήσει και να αποδείξει την ασφάλεια ενός πρωτοκόλλου μεταφοράς κρυφής μνήμης KV μέσω RDMA, με χρήση του Mooncake στην παραγωγική εγκατάσταση SGLang της.
Σε ανάρτησή της, η ομάδα του SGLang ευχαριστεί τους μηχανικούς της Cloudflare Kevin Flansburg και Kastan Day για τη συμβολή τους στις διορθώσεις και αναφέρει τη συντονισμένη γνωστοποίηση από το SGLang και την Cloudflare στις 26 Οκτωβρίου 2026 ως την τελευταία καταχώριση στο χρονολόγιο γνωστοποίησης. Η αναφορά του ίδιου του ερευνητή, στην οποία, όπως ανέφερε η ομάδα του SGLang, θα περιγράφονται η ανακάλυψη και η εξωτερική επικύρωσή της, αναμένεται να δημοσιευτεί.












