CitrixBleed wrócił, a lekcja jest starsza niż błąd
CitrixBleed wrócił: wystarczy wysłać do NetScaler logowanie, którego urządzenie nie potrafi przetworzyć, a ono odczyta własną pamięć i zwróci ją Państwu. Zmienia się liczba bajtów. Nie zmienia się kształt: poświadczenia pozostające w pamięci wystawionej na internet.
Wystarczy wysłać do NetScaler logowanie, którego nie potrafi on przetworzyć, a zrobi coś gorszego niż odrzucenie żądania. Odczytuje fragment własnej pamięci, zapisuje go w pliku cookie i przekazuje go Państwu. Uwierzytelnienie nigdy nie nastąpiło. O to właśnie chodziło.
30 czerwca Citrix opublikował poprawkę dla CVE-2026-8451 [1][2] — podatności polegającej na odczycie pamięci przed uwierzytelnieniem w NetScaler ADC i Gateway skonfigurowanych jako dostawca tożsamości SAML. Badacze z @watchtowrcyber znaleźli ją we własnym parserze XML SAML w NetScaler. Wystarczy wysłać AuthnRequest z niezamkniętą wartością atrybutu, a parser czyta dalej poza końcem pola, ponieważ zatrzymuje się wyłącznie na bajcie null lub na >, nigdy na znaku nowej linii, który powinien go zatrzymać. Wszystko, co znajduje się w sąsiedniej pamięci, wraca do nadawcy, zakodowane w base64, w pliku cookie odpowiedzi. Wskaźniki sterty. Zawartość buforów. Dane sesji. Fragmenty aktywnych poświadczeń.
Żadnego przyczółka. Żadnego łańcucha. Zadaje się drzwiom wejściowym błędne pytanie, a one odpowiadają własną pamięcią RAM.
Atakujący zrozumieli jej wartość w ciągu jednej nocy. Lupovis zgłosił wykorzystanie podatności w praktyce w ciągu 24 godzin od opublikowania poprawki, jeszcze zanim błąd trafił na listę CISA znanych podatności wykorzystywanych w atakach [3][4]. To tempo jest wskazówką. Podatność w dostawcy tożsamości SAML nadaje się do natychmiastowego uzbrojenia, ponieważ IdP to urządzenie, które decyduje, kto jest uwierzytelniony wobec wszystkiego, co się za nim znajduje. Wyciek jego pamięci oznacza sięgnięcie po tokeny sesji, które pozwalają wejść jako ktoś, kto już przeszedł weryfikację.
To rodzina CitrixBleed. Oryginał z 2023 r. wyciekał kilobajty i przekazywał atakującym aktywne tokeny sesji, które odtwarzali z własnych maszyn — tak w tę historię zostali wciągnięci Boeing, ICBC i DP World. Bramka nie reagowała, ponieważ poprawny token sesji jest poprawnym tokenem sesji niezależnie od tego, czyje ręce go trzymają.
Citrix nie jest tu wyjątkowo nieostrożny. Każde urządzenie kończące SSO przechowuje aktywne sekrety w pamięci procesu, który przetwarza wejście pochodzące od przeciwnika. To architektura, nie pomyłka. A to oznacza, że pojedynczy błąd bezpieczeństwa pamięci w dowolnym miejscu tego procesu zmienia kotwicę zaufania w wyrocznię wycieku. Kategoria nie osłabła w tym tygodniu. Kategoria zawsze miała taki kształt, a atakujący wreszcie wycenili to ryzyko.
Oto linia, przy której będziemy stać. Poświadczenie nigdy nie powinno znajdować się w czytelnej postaci w procesie wystawionym na internet. Jeśli sekret nigdy nie materializuje się w tej pamięci, błąd parsera nie ma czego rozlać. Token sesji powinien być związany z maszyną, dla której został wygenerowany, aby luźny fragment był bezużyteczny w rękach kogokolwiek innego. A sejf, który go przechowuje, powinien być taki, że jego własny operator nie może odczytać z niego wartości jawnej, ponieważ sejf, który nie potrafi odczytać samego siebie, nie da się nakłonić do odczytania siebie dla obcego.
Na tym zbudowany jest Clavitor. Poświadczenia, które nie żyją tam, gdzie działa kod. Tokeny związane ze swoją maszyną. Sejf ślepy na własną zawartość, z niezmiennym, przechowywanym poza tą maszyną śladem audytowym (rodzaj, dla którego istnieje PCI DSS Req 10), który rejestruje każde odczytanie w chwili jego wystąpienia.
Żadne z tego nie czyni z CVE-2026-8451 apokalipsy i warto być tu precyzyjnym. Odczyt zatrzymuje się na bajtach sterujących, więc sączy po kilka bajtów na żądanie zamiast kilobajtów z 2023 r., i tylko wtedy, gdy urządzenie działa jako dostawca tożsamości SAML. Obrońcy wykryli to w jeden dzień. Niebezpieczeństwo nigdy nie polegało na liczbie bajtów w tym jednym błędzie. Chodzi o kształt, który pod nim leży: umieśćcie Państwo poświadczenia w pamięci maszyny, która odpowiada obcym, a każdy błąd parsera przez następne dziesięć lat jest wyciekiem poświadczeń czekającym na swój numer CVE. Liczba bajtów się zmienia. Kształt — nie.
Należy więc zainstalować poprawkę dla NetScaler. Potem warto postawić pytanie, którego poprawka nie dotyka: dlaczego w ogóle cokolwiek wartego kradzieży znajdowało się w tej pamięci?
Jeśli interesuje Państwa krótka lista zasad, których system poświadczeń nigdy nie powinien łamać, zapisaliśmy ją. https://x.com/clavitorai/status/2071121333719625842
Clavitor (@clavitorai) to sejf na poświadczenia zbudowany dla agentów AI — i przeciwko nim. clavitor.ai
Źródła
[1] watchTowr Labs, "CitrixBleed To Infinity And Beyond: Citrix NetScaler Pre-Auth Memory Overread (CVE-2026-8451)," autor: Aliz Hammond. @watchtowrcyber
[2] Citrix, biuletyn bezpieczeństwa dla NetScaler ADC i NetScaler Gateway, CVE-2026-8451 (CVSS 8.8), poprawka z 30 czerwca 2026 r. @citrix
[3] Lupovis, wykrycie wykorzystania CVE-2026-8451 w praktyce w ciągu 24 godzin od publicznego ujawnienia.
[4] CyberScoop i BleepingComputer, doniesienia o aktywnym wykorzystywaniu podatności ujawniającej pamięć w mechanizmie SAML w NetScaler.