Ghost CMS pod ostrzałem: krytyczne SQL Injection wykorzystywane w kampanii ClickFix - Security Bez Tabu

Ghost CMS pod ostrzałem: krytyczne SQL Injection wykorzystywane w kampanii ClickFix

Cybersecurity news

Wprowadzenie do problemu / definicja

Ghost CMS znalazł się w centrum aktywnie wykorzystywanej kampanii ataków po ujawnieniu krytycznej podatności SQL Injection oznaczonej jako CVE-2026-26980. Luka umożliwia nieautoryzowanemu napastnikowi odczyt danych z bazy aplikacji, w tym pozyskanie kluczy administracyjnego API. W praktyce otwiera to drogę do przejęcia kontroli nad treścią publikowaną w serwisie i osadzenia złośliwego kodu JavaScript wykorzystywanego w kolejnych etapach infekcji.

W skrócie

  • Ataki dotyczą instancji Ghost CMS w podatnych wersjach od 3.24.0 do 6.19.0.
  • Poprawka bezpieczeństwa została wydana 19 lutego 2026 r. w wersji 6.19.1.
  • Kampania objęła ponad 700 domen z wielu sektorów, w tym edukacji, mediów, technologii i fintech.
  • Celem napastników było osadzenie skryptów uruchamiających łańcuch ClickFix.
  • Skutkiem może być zarówno kompromitacja witryny, jak i narażenie odwiedzających na infekcję malware.

Kontekst / historia

Podatności typu SQL Injection od lat należą do najgroźniejszych błędów aplikacyjnych, zwłaszcza gdy występują w systemach CMS obsługujących publikację treści, konta redakcyjne i interfejsy administracyjne. W przypadku Ghost CMS problem ma szczególne znaczenie, ponieważ platforma jest szeroko wykorzystywana przez blogi, serwisy informacyjne i strony firmowe.

Po opublikowaniu poprawki bezpieczeństwa część organizacji nie wdrożyła jej wystarczająco szybko. To stworzyło dogodne warunki do masowego skanowania internetu i kompromitacji podatnych instalacji. Badacze opisali również co najmniej dwa odrębne klastry aktywności przestępczej, które wykorzystywały tę samą lukę do infekowania witryn, a w niektórych przypadkach ponownie przejmowały wcześniej oczyszczone domeny lub nadpisywały skrypty konkurencyjnej grupy własnym ładunkiem.

Analiza techniczna

Sednem problemu jest możliwość wykorzystania CVE-2026-26980 do odczytu arbitralnych danych z bazy Ghost CMS bez konieczności uwierzytelnienia. Kluczowym zasobem pozyskiwanym przez napastników są klucze Admin API, które zapewniają uprzywilejowany dostęp do zarządzania użytkownikami, artykułami i motywami. Po ich przejęciu atakujący mogą korzystać z legalnego z perspektywy aplikacji interfejsu do modyfikowania treści i osadzania złośliwego JavaScript.

Zaobserwowany łańcuch ataku miał charakter wieloetapowy. Najpierw dochodziło do eksfiltracji danych z bazy oraz przejęcia kluczy API. Następnie napastnicy używali ich do wstrzyknięcia lekkiego loadera JavaScript do treści artykułów. Loader pobierał kod drugiego etapu z infrastruktury kontrolowanej przez operatorów kampanii. Ten etap odpowiadał za cloaking i fingerprinting, czyli profilowanie odwiedzającego oraz ocenę, czy nadaje się on na cel ataku.

Dopiero po pozytywnej kwalifikacji użytkownikowi wyświetlany był fałszywy komunikat przypominający mechanizm weryfikacji antybotowej. Osadzony w ramce iframe ekran zachęcał ofiarę do wykonania instrukcji mającej rzekomo potwierdzić, że jest człowiekiem. W rzeczywistości użytkownik był nakłaniany do wklejenia wskazanego polecenia do wiersza poleceń systemu Windows, co prowadziło do pobrania i uruchomienia szkodliwego ładunku.

W analizowanych incydentach obserwowano różne typy payloadów, w tym loadery DLL, droppery JavaScript oraz próbki złośliwego oprogramowania zbudowane z użyciem Electron. Taki model działania zwiększa elastyczność kampanii, ponieważ operatorzy mogą dynamicznie podmieniać końcowy malware zależnie od celu, regionu lub bieżących potrzeb operacyjnych.

Konsekwencje / ryzyko

Ryzyko związane z tą kampanią jest wielowarstwowe. Dla właścicieli serwisów kompromitacja Ghost CMS oznacza nie tylko naruszenie integralności treści, lecz także utratę zaufania użytkowników i potencjalną odpowiedzialność za dystrybucję złośliwego kodu. Zainfekowana strona staje się aktywnym elementem łańcucha ataku, nawet jeśli sama organizacja nie była bezpośrednim celem końcowym.

Dla odwiedzających zagrożenie ma charakter socjotechniczno-techniczny. ClickFix omija wiele klasycznych założeń bezpieczeństwa, ponieważ nie polega wyłącznie na automatycznym exploitowaniu przeglądarki, lecz wykorzystuje manipulację użytkownikiem. Ofiara sama uruchamia polecenie, co zwiększa skuteczność kampanii i utrudnia tradycyjne blokowanie po stronie przeglądarki.

Z perspektywy obrony szczególnie niebezpieczne jest to, że przejęte klucze API mogą pozostać ważne także po usunięciu widocznych skryptów z artykułów. Oznacza to, że samo oczyszczenie treści nie gwarantuje pełnego usunięcia dostępu napastnika. Jeżeli organizacja nie przeprowadzi rotacji sekretów i dokładnej analizy logów, środowisko może pozostać podatne na reinfekcję.

Rekomendacje

Administratorzy Ghost CMS powinni w pierwszej kolejności upewnić się, że wszystkie instancje zostały zaktualizowane co najmniej do wersji 6.19.1 lub nowszej. Następnie należy przeprowadzić pełną rotację kluczy Admin API oraz innych sekretów, które mogły zostać zapisane w bazie lub wykorzystane przez integracje.

Kolejnym krokiem powinien być przegląd treści publikowanych w serwisie, motywów oraz niestandardowych komponentów pod kątem nieautoryzowanych wstrzyknięć JavaScript. Warto porównać aktualny stan plików i wpisów z wcześniejszymi wersjami lub kopiami zapasowymi. Szczególną uwagę należy zwrócić na artykuły edytowane bez uzasadnienia biznesowego oraz na osadzone ramki iframe, zewnętrzne skrypty i nietypowe odwołania do zasobów.

Istotne jest również zachowanie i analiza logów wywołań administracyjnego API. Utrzymywanie co najmniej 30-dniowej retencji takich danych znacząco poprawia możliwość dochodzenia po incydencie. Zespół bezpieczeństwa powinien wyszukać anomalie obejmujące nietypowe modyfikacje postów, użycie kluczy API spoza standardowych adresów źródłowych, nagłe zmiany w wielu artykułach jednocześnie oraz komunikację z nieznaną infrastrukturą zewnętrzną.

Na poziomie ochrony użytkowników końcowych warto wdrożyć dodatkowe mechanizmy monitorujące integralność treści i skryptów po stronie aplikacji, a także rozwiązania CSP ograniczające możliwość ładowania nieautoryzowanych zasobów JavaScript. Choć polityki CSP nie eliminują skutków przejęcia uprzywilejowanego dostępu do aplikacji, mogą utrudnić skuteczne dołączenie infrastruktury drugiego etapu.

Podsumowanie

Przypadek Ghost CMS i CVE-2026-26980 pokazuje, jak szybko niezałatana luka aplikacyjna może przełożyć się na masową kompromitację witryn oraz wtórne ataki na odwiedzających. W tym scenariuszu SQL Injection nie służyło jedynie do odczytu danych, lecz stało się punktem wejścia do przejęcia kluczy administracyjnych, modyfikacji treści i uruchomienia kampanii ClickFix na dużą skalę. Dla organizacji najważniejsze działania to natychmiastowe aktualizacje, rotacja sekretów, szczegółowa analiza logów oraz weryfikacja integralności treści. Brak tych kroków może oznaczać, że nawet pozornie naprawiona instancja nadal pozostaje pod kontrolą napastnika.

Źródła

  1. https://www.bleepingcomputer.com/news/security/ghost-cms-sql-injection-flaw-exploited-in-large-scale-clickfix-campaign/
  2. https://nvd.nist.gov/vuln/detail/CVE-2026-26980
  3. https://github.com/TryGhost/Ghost/releases/tag/v6.19.1
  4. https://www.sentinelone.com/blog/