W serwisie SecuPress pojawiła się informacja o luce bezpieczeństwa w popularnej wtyczce W3 Total Cache. Luka ta umożliwia wykonanie ataku XSS (Cross-site scripting) w panelu administracyjnym. Problem jest o tyle poważny, że z rozszerzenia tego aktywnie korzysta grubo ponad milion stron (dokładnych danych oczywiście brak), a autor nie wydaje się być zainteresowany dalszym rozwojem wtyczki.
Mimo że luki tej nie należy lekceważyć, to szum, jaki został wokół niej wywołany, ma nieco kontrowersyjne podłoże.
Aktualizacja 26.09.2016: pojawiła się wersja 0.9.5 wtyczki, która poprawia między innymi opisywany we wpisie błąd.
Drobny błąd, którego poprawienie zajęłoby średnio rozgarniętemu programiście jakieś 2 minuty, został zgłoszony autorowi przez firmę Klikki Oy ponad 4 miesiące temu i do tej pory nie doczekał się łatki.
21 września na blogu Zerial pojawił się dość szczegółowy opis luki, a dwa dni później blog SecurePress opublikował wspomniany wcześniej wpis, napisany w dość przerażającym tonie i straszący użytkowników W3 Total Cache zagrożeniami związanymi z tą luką. Absolutnie nie lekceważąc powagi sytuacji trzeba wspomnieć, że właścicielem tego bloga jest firma WP Media, której głównym źródłem dochodu jest wtyczka WP Rocket, będąca bezpośrednią konkurencją dla W3 Total Cache. Może jestem przewrażliwiony, ale dla mnie nie wygląda to dobrze…
Jak atakujący może wykorzystać tę lukę?
Korzystając z tej luki można „wstrzyknąć” własny kod JavaScript, który może na przykład wykraść informacje, za pomocą których (teoretycznie) atakujący będzie mógł zalogować się na konto administratora.
„Problem” w tym, że aby wykorzystać tę lukę atakujący musi zmusić osobę zalogowaną do panelu administracyjnego z uprawnieniami administratora (a konkretnie z zezwoleniem manage_options
) do użycia odpowiednio spreparowanego linku. Jest to trudne, ale nie niemożliwe.
Korzystam z W3 Total Cache – co mam zrobić?
W momencie pisania tego wpisu poprawka wspomnianego błędu nie była jeszcze dostępna.
Jeśli korzystamy z wtyczki W3 Total Cache i chcemy być pewni, że nikt nie podsunie nam linku ze złośliwym kodem, możemy zastosować jedno z następujących rozwiązań:
wyłączyć (a najlepiej całkowicie usunąć) wtyczkę z serwera i poczekać na wydanie wersji z poprawionym błędemuaktualnić wtyczkę do wersji 0.9.5, która jest pozbawiona opisywanego błędu,- samodzielnie poprawić błąd (odpowiednią poprawkę można znaleźć tutaj),
- skorzystać z jednej z alternatywnych wtyczek (na przykład WP Super Cache),
- skorzystać z alternatywnej wersji W3 Total Cache, nazwanej Fix W3TC, w której ten błąd został poprawiony; niestety, trzeba ją pobrać i zainstalować „ręcznie”, bo nie ma jej w oficjalnym repozytorium wtyczek,
- po zakończeniu pracy w panelu administracyjnym zawsze wylogowywać się lub używać konta bez uprawnień administratora.