Критическая уязвимость обнаружена в WooCommerce 13 июля 2021 г. — что вам нужно знать

Опубликовано: 2021-07-15

Последнее обновление: 23 июля 2021 г.

13 июля 2021 года исследователь безопасности Джош обнаружил критическую уязвимость, касающуюся WooCommerce и функционального плагина WooCommerce Blocks, с помощью нашей программы безопасности HackerOne.

Узнав о проблеме, наша команда немедленно провела тщательное расследование, проверила все соответствующие кодовые базы и создала исправление для устранения проблемы для каждой затронутой версии (90+ выпусков), которая автоматически развертывалась в уязвимых магазинах.

У меня есть магазин WooCommerce — какие действия мне следует предпринять?

Автоматические обновления программного обеспечения для WooCommerce 5.5.1 начали развертываться 14 июля 2021 года во всех магазинах, в которых используются уязвимые версии каждого плагина, но мы по-прежнему настоятельно рекомендуем вам убедиться, что вы используете последнюю версию. Для WooCommerce это 5.5.2 * или максимально возможное число в вашей ветке релиза. Если вы также используете блоки WooCommerce, вы должны использовать версию 5.5.1 этого плагина.

Важно ! С выпуском WooCommerce 5.5.2 23 июля 2021 г. упомянутый выше процесс автоматического обновления был прекращен.

После обновления до исправленной версии мы также рекомендуем:

  • Обновление паролей для любых пользователей-администраторов на вашем сайте, особенно если они повторно используют одни и те же пароли на нескольких веб-сайтах.
  • Ротация любых ключей платежного шлюза и WooCommerce API, используемых на вашем сайте.

Ниже приведена дополнительная информация об этих шагах.

* WooCommerce 5.5.2 был выпущен 23 июля 2021 г. Исправления, содержащиеся в этой версии, не связаны с недавней уязвимостью системы безопасности.

Как узнать, актуальна ли моя версия?

В приведенной ниже таблице содержится полный список исправленных версий как для WooCommerce, так и для блоков WooCommerce. Если вы используете версию WooCommerce или WooCommerce Blocks, которой нет в этом списке, немедленно обновите ее до самой последней версии в вашей ветке выпуска.

Исправленные версии WooCommerce Исправленные версии блоков 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

Почему мой сайт не получил автоматическое обновление?

Ваш сайт может не обновляться автоматически по ряду причин, наиболее вероятными из которых являются: вы используете версию, предшествующую затронутой (ниже WooCommerce 3.3), автоматические обновления были явно отключены на вашем сайте, ваша файловая система только для чтения, или существуют потенциально конфликтующие расширения, препятствующие обновлению.

Во всех случаях (кроме первого примера, когда вас это не затронет) вам следует попытаться вручную обновиться до новейшей исправленной версии в вашей ветке выпуска (например, 5.5.2, 5.4.2, 5.3.1 и т. д.), как указано в таблицу выше.

Были ли скомпрометированы какие-либо данные?

Основываясь на имеющихся доказательствах, мы считаем, что любой эксплойт был ограничен.

Если магазин был затронут, раскрытая информация будет специфичной для того, что хранится на этом сайте, но может включать информацию о заказе, клиенте и административную информацию.

Как я могу проверить, был ли мой магазин взломан?

Из-за характера этой уязвимости и чрезвычайно гибкого способа, которым WordPress (и, следовательно, WooCommerce) позволяет обрабатывать веб-запросы, не существует определенного способа подтверждения эксплойта. Возможно, вы сможете обнаружить некоторые попытки эксплойта, просмотрев журналы доступа вашего веб-сервера (или получив помощь от вашего веб-хостинга). Запросы в следующих форматах, полученные с декабря 2019 года по настоящее время, скорее всего, указывают на попытку эксплойта:

  • REQUEST_URI, соответствующий регулярному выражению /\/wp-json\/wc\/store\/products\/collection-data.*%25252.*/
  • REQUEST_URI, соответствующий регулярному выражению /.*\/wc\/store\/products\/collection-data.*%25252.*/ (обратите внимание, что это выражение неэффективно/медленно работает в большинстве сред ведения журнала)
  • Любой запрос без GET (POST или PUT) к /wp-json/wc/store/products/collection-data или /?rest_route=/wc/store/products/collection-data

Запросы, которые, как мы видели, используют эту уязвимость, поступают со следующих IP-адресов, причем более 98% приходятся на первый в списке. Если вы видите какой-либо из этих IP-адресов в своих журналах доступа, вы должны предположить, что уязвимость использовалась:

  • 137.116.119.175
  • 162.158.78.41
  • 103.233.135.21

Какие пароли мне нужно изменить?

Маловероятно, что ваш пароль был скомпрометирован, так как он хеширован.

Пароли пользователей WordPress хэшируются с использованием солей, что означает, что полученное хеш-значение очень сложно взломать. Этот подход с использованием соленого хэша защищает ваш пароль администратора, а также пароли любых других пользователей на вашем сайте, включая клиентов. Хотя возможно, что через эту уязвимость был получен доступ к хешированной версии вашего пароля, хранящейся в вашей базе данных, значение хеш-функции должно быть неразличимым и по-прежнему защищать ваши пароли от несанкционированного использования.

Это предполагает, что ваш сайт использует стандартное управление паролями WordPress для пользователей. В зависимости от плагинов, которые вы установили на свой сайт, у вас могут быть пароли или другая конфиденциальная информация, хранящаяся менее безопасным способом.

Если кто-либо из пользователей-администраторов на вашем сайте мог повторно использовать одни и те же пароли на нескольких веб-сайтах, мы рекомендуем вам обновить эти пароли на случай, если их учетные данные были скомпрометированы в другом месте.

Мы также рекомендуем изменить любые личные или секретные данные, хранящиеся в вашей базе данных WordPress/WooCommerce. Это может включать ключи API, открытые/закрытые ключи для платежных шлюзов и многое другое, в зависимости от конфигурации вашего конкретного магазина.

Как разработчик расширений или поставщик услуг, должны ли мы предупредить наших продавцов WooCommerce?

Если вы работаете с каким-либо действующим магазином или продавцом WooCommerce, мы рекомендуем вам сотрудничать с ними, чтобы убедиться, что они знают об этой проблеме, и/или обновить их магазин до безопасной версии.

Если вы создали расширение или предлагаете услугу SaaS, основанную на WooCommerce API, мы рекомендуем вам помочь продавцам сбросить ключи для подключения к вашей услуге.

Должен ли я как владелец магазина предупреждать своих покупателей?

Предупредите ли вы своих клиентов, в конечном счете, зависит от вас. Ваши обязательства по уведомлению клиентов или сбросу таких вещей, как пароли, будут различаться в зависимости от таких деталей, как инфраструктура вашего сайта, географическое положение вас и ваших клиентов, какие данные собирает ваш сайт, а также от того, был ли ваш сайт скомпрометирован.

Наиболее важным действием, которое вы можете предпринять для защиты своих клиентов, является обновление вашей версии WooCommerce до версии, в которой исправлено исправление этой уязвимости.

После обновления рекомендуем:

  • Обновление паролей для любых пользователей-администраторов на вашем сайте, особенно если вы повторно используете одни и те же пароли на нескольких сайтах.
  • Ротация любых ключей платежного шлюза и WooCommerce API, используемых на вашем сайте.

Как владелец магазина, в конечном итоге вы сами решаете, хотите ли вы принять дополнительные меры предосторожности, такие как сброс паролей ваших клиентов. Пароли пользователей WordPress (и, следовательно, WooCommerce) хэшируются с использованием солей, что означает, что полученное хеш-значение очень сложно взломать. Этот подход с соленым хэшем применяется ко всем паролям пользователей на вашем сайте, включая пароли ваших клиентов.

Безопасно ли использовать WooCommerce?

да.

Такие случаи нечасты, но, к сожалению, иногда случаются. Мы стремимся всегда реагировать немедленно и работать с полной прозрачностью.

Узнав об уязвимости, команда круглосуточно работала над тем, чтобы исправить ее и проинформировать наших пользователей.

Наши постоянные инвестиции в безопасность платформы позволяют нам предотвращать подавляющее большинство проблем, но в редких случаях, которые потенциально могут повлиять на работу магазинов, мы стремимся быстро исправлять, активно общаться и работать совместно с сообществом WooCommerce.

Что делать, если у меня остались вопросы?

Если у вас есть какие-либо дополнительные проблемы или вопросы по этой проблеме, наша команда инженеров счастья всегда готова помочь — отправьте запрос в службу поддержки.