Krytyczna luka w zabezpieczeniach wykryta w WooCommerce 13 lipca 2021 r. – Co musisz wiedzieć

Opublikowany: 2021-07-15

Ostatnia aktualizacja: 23 lipca 2021

13 lipca 2021 r. badacz bezpieczeństwa Josh zidentyfikował i odpowiedzialnie ujawnił krytyczną lukę dotyczącą WooCommerce i wtyczki funkcji WooCommerce Blocks za pośrednictwem naszego programu zabezpieczającego HackerOne.

Po dowiedzeniu się o problemie nasz zespół natychmiast przeprowadził szczegółowe dochodzenie, skontrolował wszystkie powiązane bazy kodu i stworzył poprawkę, która naprawiła problem dla każdej wersji, której dotyczy problem (ponad 90 wydań), która została automatycznie wdrożona w zagrożonych sklepach.

Posiadam sklep WooCommerce – jakie działania mam podjąć?

Automatyczne aktualizacje oprogramowania do WooCommerce 5.5.1 rozpoczęły się 14 lipca 2021 r. we wszystkich sklepach korzystających z wersji każdej wtyczki, której dotyczy problem, ale nadal zalecamy korzystanie z najnowszej wersji. W przypadku WooCommerce jest to 5.5.2 * lub najwyższa możliwa liczba w Twojej gałęzi wydania. Jeśli używasz również WooCommerce Blocks, powinieneś używać wersji 5.5.1 tej wtyczki.

Ważne : Wraz z wydaniem WooCommerce 5.5.2 23 lipca 2021 r., wspomniany powyżej proces automatycznej aktualizacji został przerwany.

Po aktualizacji do wersji łatanej zalecamy również:

  • Aktualizacja haseł wszystkich administratorów w Twojej witrynie, zwłaszcza jeśli używają oni tych samych haseł w wielu witrynach
  • Obracanie dowolnych kluczy Payment Gateway i WooCommerce API używanych w Twojej witrynie.

Poniżej znajdziesz więcej informacji o tych krokach.

* WooCommerce 5.5.2 został wydany 23 lipca 2021 r. Poprawki zawarte w tej wersji nie są związane z ostatnią luką w zabezpieczeniach.

Skąd mam wiedzieć, czy moja wersja jest aktualna?

Poniższa tabela zawiera pełną listę poprawionych wersji dla bloków WooCommerce i WooCommerce. Jeśli używasz wersji WooCommerce lub WooCommerce Blocks, której nie ma na tej liście, natychmiast zaktualizuj do najwyższej wersji w swojej gałęzi wydania.

Poprawione wersje WooCommerce Poprawione wersje bloków WooCommerce
3.3.6 2.5.16
3.4.8 2.6.2
3.5.9 2.7.2
3.6.6 2.8.1
3.7.2 2.9.1
3.8.2 3.0.1
3.9.4 3.1.1
4.0.2 3.2.1
4.1.2 3.3.1
4.2.3 3.4.1
4.3.4 3.5.1
4.4.2 3.6.1
4.5.3 3.7.2
4.6.3 3.8.1
4.7.2 3.9.1
4.8.1 4.0.1
4.9.3 4.1.1
5.0.1 4.2.1
5.1.1 4.3.1
5.2.3 4.4.3
5.3.1 4.5.3
5.4.2 4.6.1
5.5.1 4.7.1
5.5.2 4.8.1
4.9.2
5.0.1
5.1.1
5.2.1
5.3.2
5.4.1
5.5.1

Dlaczego moja witryna nie otrzymała automatycznej aktualizacji?

Twoja witryna mogła nie zostać automatycznie zaktualizowana z wielu powodów, niektóre z najbardziej prawdopodobnych to: używasz wersji wcześniejszej niż ta, której dotyczy problem (poniżej WooCommerce 3.3), automatyczne aktualizacje zostały wyraźnie wyłączone w Twojej witrynie, Twój system plików jest tylko do odczytu lub istnieją potencjalnie sprzeczne rozszerzenia uniemożliwiające aktualizację.

We wszystkich przypadkach (z wyjątkiem pierwszego przykładu, w którym nie ma to na Ciebie wpływu), powinieneś spróbować ręcznie zaktualizować do najnowszej załatanej wersji w swojej gałęzi wydania (np. 5.5.2, 5.4.2, 5.3.1, itd.), zgodnie z opisem w w powyższej tabeli.

Czy jakiekolwiek dane zostały naruszone?

Na podstawie dostępnych obecnie dowodów uważamy, że jakikolwiek exploit był ograniczony.

Jeśli sklep został naruszony, ujawnione informacje będą specyficzne dla tego, co przechowuje ta witryna, ale mogą obejmować informacje o zamówieniach, klientach i administracyjnych.

Jak mogę sprawdzić, czy mój sklep był wykorzystywany?

Ze względu na charakter tej luki oraz niezwykle elastyczny sposób, w jaki WordPress (a tym samym WooCommerce) umożliwia obsługę żądań internetowych, nie ma ostatecznego sposobu potwierdzenia exploita. Możesz być w stanie wykryć niektóre próby wykorzystania luki, przeglądając dzienniki dostępu swojego serwera WWW (lub uzyskać pomoc od swojego usługodawcy hostingowego). Żądania w następujących formatach, które pojawiły się między grudniem 2019 r., a teraz prawdopodobnie wskazują na próbę wykorzystania luki:

  • REQUEST_URI pasujące do wyrażenia regularnego /\/wp-json\/wc\/store\/products\/collection-data.*%25252.*/
  • REQUEST_URI pasujące do wyrażenia regularnego /.*\/wc\/store\/products\/collection-data.*%25252.*/ (zwróć uwagę, że to wyrażenie nie jest wydajne/jest wolne w większości środowisk rejestrowania)
  • Wszelkie żądania inne niż GET (POST lub PUT) do /wp-json/wc/store/products/collection-data lub /?rest_route=/wc/store/products/collection-data

Żądania wykorzystujące tę lukę, które widzieliśmy, pochodzą z następujących adresów IP, przy czym ponad 98% pochodzi z pierwszego na liście. Jeśli widzisz którykolwiek z tych adresów IP w swoich dziennikach dostępu, powinieneś założyć, że luka została wykorzystana:

  • 137.116.119.175
  • 162.158.78.41
  • 103.233.135.21

Jakie hasła muszę zmienić?

Jest mało prawdopodobne, że Twoje hasło zostało naruszone, ponieważ jest zaszyfrowane.

Hasła użytkowników WordPress są haszowane przy użyciu soli, co oznacza, że ​​wynikowa wartość skrótu jest bardzo trudna do złamania. To podejście typu salted hash chroni Twoje hasło jako administratora, a także hasła innych użytkowników w Twojej witrynie, w tym klientów. Chociaż możliwe, że zaszyfrowana wersja Twojego hasła przechowywanego w Twojej bazie danych mogła zostać udostępniona przez tę lukę, wartość skrótu powinna być niezauważalna i nadal chronić Twoje hasła przed nieautoryzowanym użyciem.

Zakłada się, że Twoja witryna korzysta ze standardowego zarządzania hasłami WordPress dla użytkowników. W zależności od wtyczek zainstalowanych w witrynie możesz mieć hasła lub inne poufne informacje przechowywane w mniej bezpieczny sposób.

Jeśli którykolwiek z administratorów w Twojej witrynie mógł ponownie użyć tych samych haseł w wielu witrynach, zalecamy zaktualizowanie tych haseł na wypadek, gdyby ich poświadczenia zostały naruszone w innym miejscu.

Zalecamy również zmianę wszelkich prywatnych lub tajnych danych przechowywanych w bazie danych WordPress/WooCommerce. Może to obejmować klucze API, klucze publiczne/prywatne do bramek płatności i nie tylko, w zależności od konkretnej konfiguracji sklepu.

Czy jako programista rozszerzeń lub dostawca usług powinniśmy ostrzegać naszych sprzedawców WooCommerce?

Jeśli współpracujesz z dowolnym sklepem lub sprzedawcą WooCommerce na żywo, zachęcamy do współpracy z nimi, aby upewnić się, że wiedzą o tym problemie i/lub zaktualizować swój sklep do bezpiecznej wersji.

Jeśli zbudowałeś rozszerzenie lub oferujesz usługę SaaS, która opiera się na API WooCommerce, zachęcamy do pomocy sprzedawcom w zresetowaniu kluczy, aby połączyć się z Twoją usługą.

Czy jako właściciel sklepu powinienem ostrzegać moich klientów?

To, czy powiadomisz swoich klientów, zależy ostatecznie od Ciebie. Twoje obowiązki dotyczące powiadamiania klientów lub resetowania takich rzeczy, jak hasła, będą się różnić w zależności od szczegółów, takich jak infrastruktura Twojej witryny, lokalizacja geograficzna Twojej i Twoich klientów, jakie dane zbiera Twoja witryna oraz czy Twoja witryna została naruszona.

Najważniejszym działaniem, jakie możesz podjąć, aby chronić swoich klientów, jest aktualizacja Twojej wersji WooCommerce do wersji, która została załatana poprawką tej luki.

Po aktualizacji zalecamy:

  • Aktualizowanie haseł dowolnego administratora w Twojej witrynie, zwłaszcza jeśli używasz tych samych haseł w wielu witrynach
  • Obracanie dowolnych kluczy Payment Gateway i WooCommerce API używanych w Twojej witrynie.

Jako właściciel sklepu ostatecznie to Ty decydujesz, czy chcesz podjąć dodatkowe środki ostrożności, takie jak resetowanie haseł klientów. Hasła użytkowników WordPress (a tym samym WooCommerce) są haszowane przy użyciu soli, co oznacza, że ​​wynikowa wartość skrótu jest bardzo trudna do złamania. To podejście typu salted hash jest stosowane do wszystkich haseł użytkowników w Twojej witrynie, w tym haseł Twoich klientów.

Czy korzystanie z WooCommerce jest nadal bezpieczne?

TAk.

Incydenty takie jak ten są rzadkie, ale niestety czasami się zdarzają. Naszą intencją jest zawsze natychmiastowe reagowanie i działanie z pełną przejrzystością.

Od czasu poznania luki zespół pracował przez całą dobę, aby upewnić się, że poprawka została wprowadzona, a nasi użytkownicy zostali poinformowani.

Nasze ciągłe inwestycje w bezpieczeństwo platformy pozwalają nam zapobiegać większości problemów – ale w rzadkich przypadkach, które mogą potencjalnie wpłynąć na sklepy, staramy się szybko naprawiać, proaktywnie komunikować się i współpracować ze społecznością WooCommerce.

A jeśli nadal mam pytania?

Jeśli masz dalsze wątpliwości lub pytania dotyczące tego problemu, nasz zespół inżynierów szczęścia jest do Twojej dyspozycji – otwórz zgłoszenie do pomocy technicznej.