
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
W platformach opartych na ASP.NET bezpieczeństwo danych stanu aplikacji zależy między innymi od prawidłowej konfiguracji mechanizmu ViewState oraz właściwego zarządzania kluczami kryptograficznymi. Incydent dotyczący systemu KnowledgeDeliver pokazał, że błędna dystrybucja tych ustawień może doprowadzić do zdalnego wykonania kodu bez uwierzytelnienia, a następnie do pełnej kompromitacji serwera.
Opisana podatność, oznaczona jako CVE-2026-5426, była aktywnie wykorzystywana jako luka zero-day. Jej skutkiem było wdrażanie web shelli, modyfikowanie zasobów aplikacji oraz użycie skompromitowanej platformy do dalszych działań przeciwko użytkownikom końcowym.
W skrócie
- Luka dotyczyła platformy LMS KnowledgeDeliver działającej w środowisku ASP.NET.
- Przyczyną problemu było używanie identycznych, współdzielonych wartości
machineKeyw wielu wdrożeniach. - Atakujący mogli przygotować poprawnie podpisane złośliwe ładunki ViewState i osiągnąć zdalne wykonanie kodu bez logowania.
- Po udanej eksploatacji instalowano web shell Godzilla oraz modyfikowano pliki aplikacji.
- W części przypadków skompromitowany serwer był wykorzystywany do nakłaniania użytkowników do pobrania fałszywego instalatora malware.
Kontekst / historia
Nadużycia związane z deserializacją ViewState w aplikacjach ASP.NET nie są zjawiskiem nowym. Od lat badacze zwracają uwagę, że bezpieczeństwo tego mechanizmu zależy nie tylko od samego frameworka, ale również od unikalności i tajności kluczy wykorzystywanych do podpisywania i szyfrowania danych.
W przypadku KnowledgeDeliver problem miał charakter systemowy. Instalacje wdrożone przed 24 lutego 2026 roku korzystały ze standaryzowanego pliku konfiguracyjnego zawierającego stałe wartości machineKey. Oznacza to, że poznanie lub odzyskanie takiego sekretu mogło otworzyć drogę do ataków na wiele niezależnych środowisk klientów.
To szczególnie niebezpieczny model dystrybucji oprogramowania, ponieważ kompromitacja jednego elementu konfiguracji nie ogranicza ryzyka do pojedynczej organizacji, lecz może przenosić zagrożenie na całą bazę wdrożeń korzystających z tych samych ustawień bezpieczeństwa.
Analiza techniczna
Sednem podatności była możliwość przeprowadzenia ataku typu ViewState deserialization przy użyciu znanego lub współdzielonego klucza machineKey. ViewState w ASP.NET służy do przechowywania stanu strony między żądaniami HTTP. Jeśli aplikacja zaakceptuje poprawnie podpisany ładunek, a proces deserializacji pozwoli na przetworzenie złośliwej zawartości, napastnik może doprowadzić do uruchomienia własnego kodu na serwerze.
W analizowanym scenariuszu zagrożenie było krytyczne z kilku powodów. Atak nie wymagał uwierzytelnienia, był możliwy do powtórzenia w wielu środowiskach korzystających z tych samych kluczy i kończył się pełnym zdalnym wykonaniem kodu na poziomie systemu operacyjnego. To dawało intruzom możliwość przejęcia kontroli nad aplikacją i serwerem IIS.
Po skutecznej eksploatacji wdrażany był web shell Godzilla, znany z elastyczności i częstego użycia w środowiskach .NET. Takie narzędzie umożliwia wykonywanie poleceń systemowych, przeglądanie oraz modyfikowanie plików, transfer danych i uruchamianie kolejnych komponentów poeksploatacyjnych. Z punktu widzenia obrony oznacza to przejście od jednorazowego RCE do trwałej obecności przeciwnika w infrastrukturze.
Badacze wskazali również, że po przejęciu serwera modyfikowano pliki JavaScript aplikacji. Taki etap ataku rozszerzał jego zasięg z warstwy serwerowej na użytkowników końcowych. Osoby odwiedzające legalną platformę mogły zobaczyć komunikaty zachęcające do pobrania rzekomego komponentu bezpieczeństwa lub narzędzia uwierzytelniającego, które w rzeczywistości prowadziło do instalacji kolejnego malware, w tym beaconu Cobalt Strike.
Istotnym elementem analizy był także charakter przygotowania ładunków. Jeden z opisanych payloadów miał być szyfrowany kluczem powiązanym z nazwą skompromitowanej organizacji, co może sugerować przynajmniej częściowo ukierunkowany charakter operacji, a nie wyłącznie masową, zautomatyzowaną eksploatację.
Konsekwencje / ryzyko
Ryzyko związane z CVE-2026-5426 należy uznać za krytyczne. Bez konieczności logowania możliwe było przejęcie serwera aplikacyjnego, instalacja web shella oraz dalsza eskalacja działań w środowisku ofiary. Naruszenie nie kończyło się na samej aplikacji LMS, ponieważ skompromitowana platforma mogła posłużyć jako zaufany kanał dystrybucji złośliwych treści.
- utrata integralności plików aplikacji i konfiguracji,
- możliwość wykonywania dowolnych poleceń na serwerze,
- instalacja narzędzi post-exploitation, takich jak Godzilla i Cobalt Strike,
- ryzyko infekcji użytkowników odwiedzających legalny portal organizacji,
- możliwy dostęp do danych szkoleniowych, danych pracowników oraz integracji z innymi systemami.
Szczególnie groźny był mechanizm nadużycia zaufania. Użytkownik odwiedzał prawidłową domenę organizacji, a mimo to otrzymywał złośliwą zawartość z autoryzowanej aplikacji. Taki model zwiększa skuteczność socjotechniki i utrudnia szybkie wykrycie incydentu zarówno przez użytkowników, jak i część narzędzi ochronnych.
Rekomendacje
Organizacje korzystające z KnowledgeDeliver oraz innych aplikacji ASP.NET powinny potraktować ten przypadek jako sygnał do natychmiastowego przeglądu konfiguracji kryptograficznej, integralności aplikacji i mechanizmów detekcji.
- Zweryfikować, czy środowisko korzystało z predefiniowanych lub współdzielonych wartości
machineKey. - Wygenerować unikalne klucze kryptograficzne dla każdej instancji aplikacji.
- Niezwłocznie zastosować poprawki producenta i potwierdzić zakres remediacji.
- Przeprowadzić threat hunting pod kątem nietypowych żądań ViewState, błędów deserializacji i oznak wykonania kodu w IIS oraz Windows.
- Sprawdzić integralność plików aplikacyjnych, zwłaszcza
web.config, plików.aspx, bibliotek oraz zasobów JavaScript. - Poszukać artefaktów web shelli, anomalii w procesie
w3wp.exei niestandardowych połączeń wychodzących. - Przeanalizować logi pod kątem pobierania fałszywych instalatorów przez użytkowników.
- Wdrożyć reguły detekcji dla nadużyć ViewState oraz aktywności narzędzi Godzilla i Cobalt Strike.
- Ograniczyć uprawnienia kont serwisowych, aby utrudnić ruch boczny i eskalację uprawnień.
- Rozważyć użycie WAF, monitoringu integralności plików oraz telemetryki EDR na serwerach IIS.
Najważniejsza lekcja płynąca z tego incydentu jest prosta: współdzielone sekrety w produktach wdrażanych u wielu klientów tworzą ryzyko systemowe. Jeśli taki sekret zostanie ujawniony, bezpieczeństwo wszystkich zależnych od niego instancji staje pod znakiem zapytania.
Podsumowanie
CVE-2026-5426 w KnowledgeDeliver to przykład krytycznej luki wynikającej z błędnego modelu zarządzania konfiguracją bezpieczeństwa. Współdzielony machineKey umożliwił skuteczne ataki na mechanizm ViewState, prowadzące do zdalnego wykonania kodu i instalacji web shella Godzilla.
Dodatkowo kompromitacja serwera została wykorzystana do modyfikacji zasobów aplikacji i dostarczania złośliwych treści użytkownikom końcowym. Dla zespołów bezpieczeństwa to wyraźne przypomnienie, że audyt sekretów aplikacyjnych, integralności konfiguracji oraz zabezpieczeń deserializacji powinien być stałym elementem oceny ryzyka w platformach webowych.
Źródła
- BleepingComputer — https://www.bleepingcomputer.com/news/security/knowledgedeliver-flaw-exploited-as-a-zero-day-to-install-web-shells/
- Mandiant / Google Cloud: Zero-Day Exploitation of KnowledgeDeliver LMS Leading to Malware Installation — https://cloud.google.com/blog/topics/threat-intelligence/zero-day-exploitation-of-knowledgedeliver-lms-leading-to-malware-installation/
- Microsoft Threat Intelligence on Godzilla web shell activity — https://www.microsoft.com/
- ASEC analysis of Godzilla attacks in ASP.NET environments — https://asec.ahnlab.com/