Pomoc zdalna
alerty bezpieczeństwa

Luka SQL w rdzeniu WordPressa CVE-2026-60137 jest atakowana: co musi zrobić właściciel firmowej strony

Wstrzyknięcie SQL w rdzeniu WordPressa (CVE-2026-60137) trafiło do katalogu CISA KEV. W wersjach 6.9 i 7.0 razem z drugą luką pozwala przejąć stronę bez logowania. Wyjaśniamy ryzyko, wersje z poprawką i plan działań na dziś.

  • Tomasz Kaczmarek
Tomasz Kaczmarek
8 września 2026 10 min czytania
wordpress logo

Firmowa strona na WordPressie to często pierwsze miejsce, w którym klient styka się z marką: formularze kontaktowe, zapisy na newsletter, sklep, strefa klienta. Luka CVE-2026-60137 dotyczy samego rdzenia WordPressa, a nie pojedynczej wtyczki, więc potencjalnie obejmuje każdą instalację z gałęzi 6.8, 6.9 i 7.0, która nie dostała poprawki. Poniżej wyjaśniamy, co się stało, kiedy ta luka jest groźna, a kiedy mniej, i co konkretnie trzeba zrobić.

W skrócie: jeśli Twoja strona działa na WordPressie 6.8.6, 6.9.5, 7.0.2 lub nowszym (obecnie najnowsze wydania to 7.1, 7.0.4, 6.9.7 i 6.8.8), poprawka jest na miejscu. Nadal jednak warto sprawdzić, czy nikt nie wszedł na stronę, zanim aktualizacja się zainstalowała.

1. Co się stało?

17 lipca 2026 zespół WordPressa wydał aktualizacje bezpieczeństwa 7.0.2, 6.9.5 i 6.8.6. Naprawiły one dwie luki w rdzeniu systemu. Ten wpis dotyczy pierwszej z nich: wstrzyknięcia SQL w mechanizmie, który wyszukuje wpisy w bazie danych. 21 lipca 2026 amerykańska agencja CISA dopisała ją do katalogu Known Exploited Vulnerabilities (KEV), czyli listy luk, których wykorzystanie w prawdziwych atakach zostało potwierdzone.

Element

Szczegóły

Identyfikator CVE

CVE-2026-60137 (advisory producenta: GHSA-fpp7-x2x2-2mjf, baza ENISA: EUVD-2026-45279)

Data dodania do CISA KEV

21 lipca 2026, termin dla agencji federalnych USA: 4 sierpnia 2026 (14 dni)

Produkt

WordPress Core, czyli rdzeń systemu WordPress (wersja samodzielnie instalowana, pobierana z wordpress.org)

Wersje zagrożone

6.8.0 do 6.8.5, 6.9.0 do 6.9.4, 7.0.0 do 7.0.1

Wersje bezpieczne

6.8.6, 6.9.5, 7.0.2 i nowsze; wydania starsze niż 6.8 według producenta nie są podatne

Typ podatności

Wstrzyknięcie SQL (CWE-89) przez parametr author__not_in klasy WP_Query

Ocena CVSS

Dwie oceny w NVD: 5,9 (ŚREDNIA) od WPScan i 9,1 (KRYTYCZNA) od CISA; producent: Moderate

Powiązana luka

CVE-2026-63030 (pomylenie tras w zbiorczym punkcie REST API), tylko w 6.9 i 7.0

Użycie w ransomware (KEV)

Unknown, czyli brak publicznie potwierdzonych danych

EPSS (prognoza wykorzystania)

78,3%, wyżej niż 99,5% ocenianych luk (pomiar FIRST.org z 13 września 2026)

Rozbieżność ocen CVSS ma proste wytłumaczenie praktyczne. Sama luka SQL wymaga, żeby jakaś wtyczka lub motyw przekazał do podatnego parametru dane od odwiedzającego, stąd niższa ocena. CISA oceniła ją wyżej, bo w katalogu KEV opisuje łańcuch: w połączeniu z CVE-2026-63030 napastnik bez konta może uruchomić własny kod na domyślnej instalacji WordPressa.

Kogo to dotyczy w praktyce

Gałąź WordPressa

Luka SQL CVE-2026-60137

Łańcuch z CVE-2026-63030 (przejęcie bez logowania)

Minimalna wersja z poprawką

Ocena ryzyka

7.0.x

🔴 Tak (7.0.0 do 7.0.1)

🔴 Tak

7.0.2

KRYTYCZNE

6.9.x

🔴 Tak (6.9.0 do 6.9.4)

🔴 Tak

6.9.5

KRYTYCZNE

6.8.x

🟠 Tak (6.8.0 do 6.8.5)

🟢 Nie

6.8.6

Wysokie, zależne od wtyczek

6.7.x i starsze

🟢 Nie

🟢 Nie

nie dotyczy

Brak tej luki, ale stare wydania mają inne braki

Producent włączył wymuszone automatyczne aktualizacje dla stron z podatnymi wersjami. To dobra wiadomość, ale nie gwarancja: automatyczne aktualizacje bywają wyłączone w konfiguracji, blokowane przez hosting albo przez uprawnienia plików.

2. O co chodzi w prostych słowach?

Wyobraź sobie archiwum firmy z archiwistą, który przynosi dokumenty według kartki z zamówieniem. Na kartce można napisać na przykład: „wszystkie umowy z tego roku, oprócz tych od autorów nr 3 i 7”. Archiwista ma sprawdzić, czy w polu „oprócz” stoją wyłącznie numery. W podatnych wersjach WordPressa ta kontrola nie działa w jednym przypadku: gdy zamiast listy numerów przyjdzie zwykły tekst, archiwista przepisuje go do zlecenia bez czytania.

Wtedy ktoś może dopisać w polu „oprócz”: „a przy okazji przynieś też teczkę z hasłami”. Archiwista wykona to jak każde inne polecenie. Druga luka, CVE-2026-63030, to w tej metaforze boczne okienko w archiwum, przez które zamówienie trafia do archiwisty z pominięciem recepcji sprawdzającej formularze. Razem dają obcej osobie dostęp do zawartości archiwum, a w efekcie do kluczy od całego budynku.

Scenariusz

Normalnie

Z podatnością

Parametr wykluczający autorów

Zawiera tylko numery autorów

Zawiera dopisane polecenie dla bazy danych

Kto może wysłać zapytanie

Odwiedzający, ale zapytanie jest filtrowane

Anonimowy napastnik, filtr przepuszcza obcy tekst

Co zwraca baza danych

Listę wpisów na stronie

Dane, których nie powinno być widać, np. dane kont

Kto zarządza stroną

Firma i jej administratorzy

Napastnik, który dopisał sobie konto administratora

Co trafia na serwer

Treści i wtyczki instalowane przez firmę

Złośliwa wtyczka lub ukryty skrypt (webshell)

Słowniczek: SQL to język, którym strona rozmawia z bazą danych. Wstrzyknięcie SQL (CWE-89) oznacza przemycenie własnego polecenia do takiej rozmowy, np. „pokaż też zawartość tabeli użytkowników”.
Słowniczek: REST API to zestaw adresów, pod którymi WordPress przyjmuje zapytania od programów, np. aplikacji mobilnej albo edytora bloków. Webshell to mały plik z kodem, który daje napastnikowi stały dostęp do serwera przez przeglądarkę.
Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

3. Jak hakerzy to wykorzystują?

Szczegóły łańcucha opublikowano szybko, a publiczne kody demonstracyjne (PoC) pojawiły się w ciągu godzin od wydania poprawek. Według Help Net Security firma VulnCheck zweryfikowała ponad dwadzieścia unikalnych PoC. Poniższy przebieg opiera się na analizach Rapid7, SANS ISC, F5 Labs i Wiz i dotyczy wersji 6.9 i 7.0, w których działa pełny łańcuch.

Timeline ataku:

Etap

Czas

Akcja hakerów

Wynik

1

T+0 min

Automatyczne skanowanie internetu w poszukiwaniu stron na WordPressie 6.9 i 7.0

Lista celów bez poprawki

2

T+1 min

Zapytanie testowe do zbiorczego punktu REST API (/wp-json/batch/v1 lub ?rest_route=/batch/v1) z wstrzyknięciem w parametrze author_exclude

Potwierdzenie, że strona jest podatna

3

T+2 min

Pomylenie tras (CVE-2026-63030) omija walidację, a luka SQL (CVE-2026-60137) daje dostęp do bazy danych

Odczyt lub zmiana danych w bazie bez logowania

4

T+5 min

Utworzenie konta administratora i logowanie do panelu

Pełna kontrola nad stroną

5

T+10 min

Wgranie złośliwej wtyczki lub webshella, np. w katalogu wp-content/cache

Wykonanie kodu na serwerze i trwały dostęp

6

Godziny do dni

Wyliczanie użytkowników, próby odczytu pliku konfiguracyjnego z hasłami, dalsze działania

Ryzyko kradzieży danych, podmiany treści, spamu SEO

Czasy są orientacyjne i pokazują, że cały atak jest zautomatyzowany. Na gałęzi 6.8 przebieg jest inny: bez drugiej luki napastnik potrzebuje wtyczki lub motywu, który przekazuje jego dane do podatnego parametru, więc atak jest mniej masowy i zależy od konkretnej instalacji.

Konkretne scenariusze zagrożenia:

  • 🔴 Scenariusz 1: przejęcie firmowej strony i sklepu. Napastnik tworzy sobie konto administratora, wgrywa złośliwą wtyczkę i może podmieniać numery kont do przelewów, formularze płatności albo treści ofert.
  • 🔴 Scenariusz 2: wyciek danych klientów. Baza WordPressa przechowuje konta użytkowników, zamówienia sklepu, zgłoszenia z formularzy i adresy e-mail z newslettera; ich odczyt przez osobę trzecią to naruszenie ochrony danych osobowych.
  • 🔴 Scenariusz 3: strona jako narzędzie ataku na innych. Przejęty serwer może rozsyłać phishing w imieniu firmy, hostować złośliwe pliki albo służyć do spamu SEO, co kończy się blokadą w wyszukiwarkach i na listach antyspamowych.
  • 🟠 Scenariusz 4: ukryty dostęp po aktualizacji. Jeśli napastnik zdążył wejść przed instalacją poprawki, jego konto administratora i webshell zostają na serwerze także po aktualizacji.

4. Dlaczego to ryzyko dla Twojej firmy?

Luka w rdzeniu WordPressa jest groźniejsza niż błąd w niszowej wtyczce z jednego powodu: skala. Atakujący nie muszą szukać nietypowych konfiguracji, wystarczy im numer wersji. Wiz podał, że w dniu publikacji podatne instancje miało 60% monitorowanych przez tę firmę organizacji korzystających z WordPressa, a po 24 godzinach nadal 50%.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Wyłączenie lub odtwarzanie strony i sklepu, wstrzymanie sprzedaży online

Godziny

2 000 do 20 000 PLN za dobę przestoju dla małego sklepu internetowego

Bezpieczeństwo danych

Odczyt kont, zamówień i danych z formularzy

Minuty od udanego ataku

20 000 do 150 000 PLN za analizę incydentu, powiadomienia i obsługę prawną

Finansowy

Podmiana danych do płatności, oszustwa na klientach

Dni

Od kilku tysięcy PLN do wartości przejętych przelewów

Reputacyjny

Ostrzeżenia przeglądarek, spadek w wyszukiwarce, utrata zaufania

Dni do tygodni

Spadek ruchu z wyszukiwarki o kilkadziesiąt procent na tygodnie

Prawny

Zgłoszenie do UODO w 72 godziny, kary RODO, roszczenia klientów

Tygodnie do miesięcy

Kary RODO do 20 mln EUR lub 4% rocznego światowego obrotu

Kwoty w tabeli to szacunki poglądowe dla małej i średniej firmy, a nie dane z konkretnego incydentu związanego z tą luką.

Macierz ryzyka (pozycja CVE-2026-60137 dla stron na 6.9 i 7.0 bez poprawki oraz na 6.8 bez poprawki):

Wpływ 5 | ■ ← CVE-2026-60137 + CVE-2026-63030 (6.9 / 7.0) 4 | ■ ← CVE-2026-60137 sama (6.8, wymaga wtyczki) 3 | 2 | 1 | +--------------------- 1 2 3 4 5 Prawdopodobieństwo Uzasadnienie: potwierdzone ataki (KEV), publiczne PoC, EPSS 78,3%, masowe skanowanie. Na 6.8 prawdopodobieństwo niższe, bo potrzebny jest dodatkowy warunek po stronie wtyczki.

Przed i po aktualizacji

Aspekt

Przed (6.9.4 lub 7.0.1)

Po (6.9.5+ lub 7.0.2+)

Anonimowy dostęp do bazy danych przez REST API

🔴 Możliwy

🟢 Zablokowany

Przejęcie strony bez logowania

🔴 Możliwe

🟢 Łańcuch przerwany

Ślady wcześniejszego włamania

🟠 Mogą istnieć

🟠 Nadal mogą istnieć, aktualizacja ich nie usuwa

5. Co musisz zrobić natychmiast?

Priorytet

Działanie

Termin

Odpowiedzialny

Status

🔴 NATYCHMIAST

Spisać wszystkie instalacje WordPressa (strona główna, sklep, landing page, wersje testowe i archiwalne) z numerem wersji

Dzisiaj

IT Manager

☐

🔴 NATYCHMIAST

Zaktualizować do najnowszego wydania w gałęzi: 7.1 lub 7.0.4, 6.9.7, 6.8.8 (minimum 7.0.2, 6.9.5, 6.8.6)

Dzisiaj

Administrator WordPressa lub agencja

☐

🔴 NATYCHMIAST

Jeśli aktualizacja dziś jest niemożliwa: zablokować w WAF adresy /wp-json/batch/v1 i ?rest_route=/batch/v1

Dzisiaj

IT Security lub hosting

☐

🟠 PILNIE

Sprawdzić listę administratorów i usunąć nieznane konta, zmienić hasła administratorów

Do jutra

Administrator WordPressa

☐

🟠 PILNIE

Przeszukać serwer pod kątem nieznanych plików PHP (szczególnie wp-content/cache i wp-content/uploads) oraz nieznanych wtyczek

24-48h

Incident Response

☐

🟠 PILNIE

Przejrzeć logi serwera od 17 lipca 2026 pod kątem zapytań POST do batch/v1 z author_exclude zawierającym UNION lub SELECT

24-48h

SOC lub hosting

☐

🟡 WAŻNIE

Sprawdzić, czy automatyczne aktualizacje rdzenia są włączone i działają na wszystkich instalacjach

W ciągu tygodnia

DevOps

☐

🟡 WAŻNIE

Jeśli wykryto ślady włamania: ocenić naruszenie danych osobowych i obowiązek zgłoszenia do UODO w 72 godziny

Po wykryciu

Inspektor ochrony danych

☐

Jeśli aktualizacja nie jest dostępna:

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Reguła WAF blokująca /wp-json/batch/v1 i ?rest_route=/batch/v1

Wysoka wobec opisanego łańcucha, ok. 80-90%

Średnia, może zepsuć edytor bloków lub integracje

Wyłączenie anonimowego dostępu do REST API (wtyczka lub reguła serwera)

Wysoka, ok. 80-90%

Wysoka, ale sprawdź formularze i aplikacje korzystające z API

Gotowe reguły dostawcy WAF lub CDN (np. Cloudflare wdrożył reguły wykrywania)

Średnia do wysokiej, ok. 70-85%

Wysoka

Tryb konserwacji lub odcięcie strony od internetu do czasu aktualizacji

100%

Wysoka, ale oznacza przestój

Wartości efektywności to szacunki poglądowe; producent nie opisał oficjalnego obejścia, a obejścia wskazują Rapid7, Wiz i Help Net Security jako doraźne środki awaryjne. Jedynym pełnym rozwiązaniem jest aktualizacja.

6. Kontekst i skala zagrożenia

Aspekt

Informacja

Czy jest wykorzystywana?

TAK: potwierdzenie w CISA KEV; próby ataków raportowały m.in. Hexastrike, SANS ISC, F5 Labs, Wiz, Patchstack, watchTowr i Cloudflare

Grupy przestępcze

Brak publicznie potwierdzonych danych o konkretnych grupach

Kampanie ransomware

Brak publicznie potwierdzonych danych (flaga KEV: Unknown)

Nazwa łańcucha

wp2shell (CVE-2026-63030 razem z CVE-2026-60137)

Ocena CVSS

9,1/10 (KRYTYCZNA) według CISA; 5,9/10 (ŚREDNIA) według WPScan

PoC dostępny publicznie?

TAK: pierwsze PoC w ciągu godzin od publikacji, VulnCheck zweryfikował ponad dwadzieścia unikalnych

Liczba atakowanych firm

Brak publicznie potwierdzonej liczby ofiar; Hexastrike obsługiwał kilka potwierdzonych i podejrzewanych incydentów

Obserwowane działania po włamaniu

Konta administratorów, złośliwe wtyczki, webshelle (SANS ISC, Wiz, Rapid7)

Kto zgłosił lukę SQL

TF1T, dtro i haongo (według producenta)

Linia czasu incydentu:

2026-07-17: WordPress 7.0.2, 6.9.5 i 6.8.6; publikacja CVE; wymuszone autoaktualizacje 2026-07-17: Wieczorem pierwsze próby ataków, PoC w ciągu godzin (Help Net Security) 2026-07-20: SANS ISC opisuje ataki z webshellem i kontem administratora 2026-07-21: CISA dodaje CVE-2026-60137 i CVE-2026-63030 do katalogu KEV 2026-07-22: Rapid7 publikuje szczegóły techniczne łańcucha wp2shell 2026-07-24: Termin federalny USA dla CVE-2026-63030 2026-08-04: Termin federalny USA dla CVE-2026-60137 2026-09-13: EPSS 78,3% (percentyl 99,5%) 2026-09-14: TUTAJ JESTEŚMY - 59 dni po poprawce, sprawdź wersję i ślady włamania

Firma, która zaktualizowała stronę dopiero teraz, mogła być wystawiona na zautomatyzowane ataki przez prawie dwa miesiące. Dlatego sama aktualizacja nie zamyka sprawy, konieczna jest też kontrola śladów włamania.

7. Bezpośredni link do działania

✓

Zadanie

Kto

Deadline

☐

Sprawdzić wersję w panelu: Kokpit, Aktualizacje (lub w stopce panelu administracyjnego)

IT Manager

DZISIAJ

☐

Pobrać poprawkę przez panel lub z https://wordpress.org/download/ (opis wydania: https://wordpress.org/news/2026/07/wordpress-7-0-2-release/)

IT Manager

DZISIAJ

☐

Wykonać kopię zapasową plików i bazy danych przed aktualizacją

Administrator WordPressa

DZISIAJ

☐

Przetestować aktualizację na kopii strony, jeśli sklep lub integracje są krytyczne

QA

DZISIAJ

☐

Zakomunikować krótkie okno serwisowe zespołowi sprzedaży i obsługi klienta

Project Manager

DZISIAJ

☐

Wdrożyć aktualizację na produkcji na wszystkich instalacjach

DevOps

DO JUTRA

☐

Sprawdzić konta administratorów, nowe pliki PHP i logi zapytań do batch/v1

SOC

DO JUTRA

☐

Potwierdzić numer wersji na każdej instalacji i zapisać wynik w rejestrze zmian

IT Manager

DO JUTRA

Advisory producenta: https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-fpp7-x2x2-2mjf

Matryca decyzyjna dla zarządu

Sytuacja w firmie

Decyzja

Kto zatwierdza

Wersja 6.8.6, 6.9.5, 7.0.2 lub nowsza, brak śladów włamania

Zamknąć temat, zostawić włączone autoaktualizacje

IT Manager

Wersja z poprawką, ale aktualizacja zainstalowała się późno

Zlecić przegląd śladów włamania od 17 lipca 2026

CTO

Wersja podatna, aktualizacja możliwa dziś

Aktualizować natychmiast, potem przegląd śladów

CTO

Wersja podatna, aktualizacja niemożliwa (stare wtyczki, brak wykonawcy)

Blokada batch/v1 w WAF lub wyłączenie strony do czasu aktualizacji

Zarząd z CTO

Wykryte nieznane konto administratora lub webshell

Uruchomić procedurę incydentu, ocena zgłoszenia do UODO

Zarząd, IOD, prawnik

8. Pytania do Twojego zespołu IT

#

Pytanie

Odpowiedź

Priorytet

1

Czy mamy instalacje WordPressa w wersjach 6.8.0 do 6.8.5, 6.9.0 do 6.9.4 lub 7.0.0 do 7.0.1?

TAK / NIE

🔴

2

Jaka jest aktualna wersja na każdej stronie, także testowej i archiwalnej?

Lista instalacji z numerami wersji

🔴

3

Kiedy dokładnie zainstalowała się poprawka i czy przejrzeliśmy logi z okresu przed nią?

Data i wynik przeglądu

🔴

4

Czy lista administratorów zawiera tylko znane osoby?

TAK / NIE

🔴

5

Czy mamy włączone automatyczne aktualizacje rdzenia i czy hosting ich nie blokuje?

TAK / NIE

🟠

6

Czy strona stoi za WAF, który może szybko zablokować wybrane adresy?

TAK / NIE

🟠

7

Kto odpowiada za WordPressa: własny zespół, agencja czy hosting, i czy ma umowny czas reakcji?

Nazwa i czas reakcji

🟠

8

Czy mamy kopię zapasową sprzed 17 lipca 2026 do porównania plików?

TAK / NIE

🟡

9

Czy mamy plan odzyskiwania strony po incydencie i czy go testowaliśmy?

TAK / NIE

🟡

Pytania diagnostyczne dla managera:

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

  • ✓ Czy wiemy, ile stron internetowych firma faktycznie utrzymuje, łącznie z kampaniowymi i zapomnianymi?
  • ✓ Kiedy ostatnio przeprowadziliśmy pełny audyt bezpieczeństwa strony i sklepu?
  • ✓ Czy umowa z agencją lub hostingiem obejmuje reakcję na krytyczne luki w ciągu 24 godzin?
  • ✓ Czy mamy procedurę zgłaszania naruszeń danych osobowych w 72 godziny?
  • ✓ Czy pracownicy obsługujący panel WordPressa przeszli szkolenie z bezpieczeństwa?
Czytaj dalej

Powiązane artykuły

Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.

Masz to samo u siebie?

Możemy się tym zająć

Krótka rozmowa wystarczy, żeby ocenić zakres prac i podać widełki kosztu. Bez zobowiązań.