Jeśli otrzymałeś ode mnie wiadomość e-mail kierującą Cię na tę stronę, to dlatego, że Twoja witryna najwyraźniej korzysta z podatnej wersji Wallet System for WooCommerce (wtyczki WordPress wallet-system-for-woocommerce, autorstwa WP Swings). Ta strona wyjaśnia, dlaczego to ważne i jak temu zaradzić.

Ten biuletyn dotyczy CVE-2026-42654, luki o wysokiej wadze (CVSS 7.1) w obsłudze kont i odzyskiwania hasła we wtyczce, która mogłaby pozwolić nieautoryzowanemu żądaniu uzyskać dostęp do konta klienta. Dotyczy ona wszystkich wydań przed 2.7.6 i została naprawiona w 2.7.6. Jeśli korzystasz z wersji, której dotyczy problem, zaktualizuj Wallet System for WooCommerce do 2.7.6 lub nowszej (zalecane jest najnowsze wydanie, 2.7.8).

Słowo o pilności, ponieważ ta sprawa różni się od innych powiadomień, które wysyłałem: jest to luka dotycząca dostępu do kont, a nie przejęcia serwera czy pełnych uprawnień administratora, i nic nie wskazuje na to, że jest wykorzystywana. Ta strona to zapobiegawcze ostrzeżenie, a nie raport o incydencie. Aktualizacja zamyka problem i nie wynika z tego potrzeba żadnej reakcji awaryjnej.

Jest to luka we wtyczce, a nie w rdzeniu WordPressa czy WooCommerce. W pełni aktualny WordPress i WooCommerce nie chronią Cię, jeśli sama wtyczka Wallet System for WooCommerce jest w wersji, której dotyczy problem.

Czy ta wiadomość jest wiarygodna?

Tak. Jest to powiadomienie w dobrej wierze, zgodne z zasadą odpowiedzialnego ujawniania, od niezależnego badacza bezpieczeństwa. Nie proszę Cię o pieniądze, hasła ani dostęp do Twojej strony, i nie próbowałem się do niej włamać, niczego przesłać ani niczego wykorzystać.

Jedyne, co zrobiłem, to obejrzenie publicznie widocznych plików, które Twoja witryna udostępnia każdemu odwiedzającemu (tak samo jak publiczna jest Twoja strona główna), i odnotowanie numeru wersji, który wtyczka Wallet System for WooCommerce publikuje w swoim publicznym pliku README.txt. Świadomie nie dotknąłem podatnego punktu końcowego i nic w tym sprawdzeniu nie dotyka Twoich danych, Twojego panelu administracyjnego ani żadnej prywatnej części Twojej strony (więcej szczegółów w sekcji Co zrobiłem, a czego nie zrobiłem poniżej).

Jeśli chcesz zweryfikować, kim jestem, zobacz dane kontaktowe na dole tej strony oraz stronę O tej stronie.

Dlaczego to ważne

Wallet System for WooCommerce to dodatek do WooCommerce (około 2000 aktywnych instalacji), który pozwala sklepowi zaoferować klientom cyfrowy portfel: klienci przechowują saldo, doładowują je i płacą nim przy realizacji zamówienia. W wersjach, których dotyczy problem, uprzywilejowane operacje portfela w obsłudze kont i odzyskiwania hasła we wtyczce były chronione wspólnym tokenem bezpieczeństwa, który wtyczka wydawała każdemu odwiedzającemu, zamiast prawdziwej kontroli uprawnień powiązanej z tym, kto wysyła żądanie. Ta klasa błędu nazywa się obejściem uwierzytelniania przy użyciu alternatywnej ścieżki lub kanału (CWE-288): normalna ścieżka logowania poprawnie sprawdza tożsamość, ale ścieżka boczna akceptuje wspólny token tak, jakby dowodził on autoryzacji.

Praktyczny skutek jest taki, że żądanie przychodzące tą boczną ścieżką, dostępną dla każdego zarejestrowanego klienta (a sklep prowadzący portfel klienta niemal zawsze pozwala na otwartą rejestrację), mogło działać jako autoryzowany użytkownik i uzyskać dostęp do konta klienta.

Lukę oceniono na 7,1 na 10 (wysoka waga). Dla zachowania właściwej perspektywy: jest to problem dostępu do kont, sam w sobie nie oddaje atakującemu Twojego serwera ani konta administratora, i nic nie wskazuje na aktywne wykorzystywanie (luka nie figuruje w katalogu znanych wykorzystywanych podatności CISA, a mnie nie są znane żadne doniesienia o wykorzystywaniu). Jeśli moja wiadomość e-mail przywołała ten problem, oznacza to, że wersja, którą zgłasza Twoja strona, mieści się w zakresie, którego dotyczy problem. Nie testowałem, czy Twoja konkretna strona jest podatna na wykorzystanie, a jedynie to, że zgłasza wersję, której dotyczy problem.

Dobra wiadomość: aktualizacja do naprawionej wersji zamyka lukę, a sama aktualizacja jest prosta.

Jak sprawdzić swoją wersję

Nie musisz wierzyć mi na słowo co do tego, z jakiej wersji korzystasz.

Z publicznego manifestu (bez logowania): otwórz w przeglądarce yourdomain.com/wp-content/plugins/wallet-system-for-woocommerce/README.txt. Zwróć uwagę, że ta wtyczka dostarcza swój plik readme jako README.txt (wielkimi literami), w przeciwieństwie do wielu wtyczek, które używają pisanego małymi literami readme.txt. Wiersz Stable tag: blisko początku to wersja, którą zgłasza Twoja instalacja, i jest to ten sam publiczny plik, który odczytałem.

Z panelu administracyjnego WordPress (jeśli masz dostęp):

  1. Zaloguj się do kokpitu WordPress (zwykle pod adresem yourdomain.com/wp-admin).
  2. Przejdź do Wtyczki następnie Zainstalowane wtyczki.
  3. Znajdź Wallet System for WooCommerce i odnotuj wersję pokazaną pod jego nazwą.

Następnie zastosuj poniższą regułę, pamiętając, że wersje porównuje się numerycznie, a nie alfabetycznie:

  • Każda wersja poniżej 2.7.6: wersja, której dotyczy problem, zaktualizuj teraz. Każde wcześniejsze wydanie zawiera tę lukę; nie ma bezpiecznej starszej wersji.
  • 2.7.6 lub nowsza, w tym 2.7.7 i 2.7.8: już naprawiona.
  • Nie daj się zmylić kolejności tekstowej: 2.5.11 to wydanie późniejsze niż 2.5.9, ponieważ 11 jest większe niż 9. Porównuj każdą liczbę po kolei, zamiast czytać wersję jako tekst (oba te przykłady są poniżej 2.7.6, a więc objęte problemem; chodzi tu o to, jak w ogóle czytać numery wersji).

Jak zaktualizować

Najbezpieczniejsza droga to aktualizacja przez samego WordPressa, po uprzednim utworzeniu kopii zapasowej:

  1. Utwórz kopię zapasową swojej strony (pliki i baza danych) przed wprowadzeniem zmian. Większość dostawców hostingu oferuje kopie zapasowe jednym kliknięciem, albo skorzystaj z wtyczki do tworzenia kopii zapasowych WordPress.
  2. W panelu administracyjnym WordPress przejdź do Kokpit następnie Aktualizacje, albo Wtyczki następnie Zainstalowane wtyczki. Jeśli aktualizacja Wallet System for WooCommerce jest na liście, zainstaluj ją stąd.
  3. Jeśli wolisz wiersz poleceń, WP-CLI robi to samo: wp plugin update wallet-system-for-woocommerce.
  4. Jeśli nie pojawi się żadna aktualizacja, możesz pobrać najnowsze wydanie bezpośrednio ze strony wtyczki w katalogu WordPress.org, Wallet System for WooCommerce, i zaktualizować przez Wtyczki następnie Dodaj nową wtyczkę następnie Wyślij wtyczkę na serwer.
  5. Po aktualizacji potwierdź nowy numer wersji (2.7.6 lub nowszy; zalecane jest najnowsze wydanie 2.7.8) zgodnie z powyższymi krokami i sprawdź, czy Twój sklep i jego funkcje portfela działają normalnie.

Skoro już tam jesteś, warto potwierdzić, że rdzeń WordPress, WooCommerce oraz pozostałe wtyczki są aktualne, ponieważ ta sama zasada dotyczy ich wszystkich.

Po aktualizacji

Aktualizacja do 2.7.6 lub nowszej zamyka problem i dla większości sklepów to całe zadanie. Nic nie wskazuje na to, że luka ta była wykorzystywana, więc nie wynika z tego potrzeba żadnej reakcji awaryjnej: nie musisz traktować swojej strony jako naruszonej, wyłączać jej ani wymuszać resetów haseł.

Ponieważ luka mogła pozwolić nieautoryzowanemu żądaniu działać na koncie klienta, rozsądny jest jeden rutynowy krok uzupełniający: przejrzyj niedawną aktywność na kontach i w portfelach pod kątem czegokolwiek nieznajomego, na przykład korekt sald portfeli, których nie wykonałeś, żądań wypłaty lub zasilenia, których nie rozpoznajesz, albo zmian na kontach klientów, o które Twoi klienci nie prosili. Potraktuj to jako zwykłe porządki, jakie sklep robi okresowo, a nie jako reakcję na incydent. Jeśli coś jednak wygląda niepokojąco, obowiązują zwykłe kroki (zresetuj hasło tego klienta i przejrzyj z nim aktywność), a w razie pytań zapraszam do kontaktu.

Co zrobiłem, a czego nie zrobiłem

Aby zachować pełną przejrzystość co do sprawdzenia stojącego za moją wiadomością e-mail: odczytałem wyłącznie publiczne pliki, które Twoja strona i tak udostępnia każdemu odwiedzającemu, konkretnie publiczny plik README.txt wtyczki oraz Twoją stronę główną. Nie uzyskałem dostępu do Twojego panelu administracyjnego WordPress, Twojej bazy danych ani żadnej prywatnej części strony. W szczególności nie dotknąłem podatnego punktu końcowego i niczego nie testowałem ani nie wykorzystywałem.

Jest to obserwacja oparta na wersji: Twoja strona zgłasza wersję w zakresie, którego dotyczy problem. Strona w tym zakresie może już być chroniona w inny sposób (na przykład zaporą aplikacji webowych albo poprawką backportowaną), więc to powiadomienie nie jest stwierdzeniem, że Twoja strona była podatna na wykorzystanie w chwili, gdy ją sprawdzałem.

Nie mam webmastera / utknąłem

Jeśli nie jesteś osobą, która utrzymuje stronę, prześlij tę stronę temu, kto to robi (Twojemu deweloperowi, agencji lub dostawcy hostingu). Szybko rozpoznają powyższe kroki.

Jeśli sam utrzymujesz stronę i utkniesz, chętnie pomogę Ci wskazać właściwy kierunek, bezpłatnie. Skontaktuj się, korzystając z danych kontaktowych poniżej.

Kontakt

Evan Harris, badacz bezpieczeństwa

Kontaktuję się w sprawach takich jak ta wyłącznie po to, by pomóc operatorom zabezpieczyć ich strony. Jeśli wolisz nie być więcej kontaktowany, po prostu daj mi znać, a uszanuję to.

Źródła

Oficjalne biuletyny i śledzenie

Producent / wtyczka