Если Вы получили от меня письмо со ссылкой на эту страницу, то потому, что Ваш сайт, по всей видимости, использует уязвимую версию Wallet System for WooCommerce (плагин WordPress wallet-system-for-woocommerce от WP Swings). На этой странице объясняется, почему это важно и как это исправить.

Данное уведомление касается уязвимости CVE-2026-42654, уязвимости высокой степени серьёзности (CVSS 7.1) в механизме учётных записей и восстановления пароля плагина, которая может позволить неавторизованному запросу получить доступ к учётной записи клиента. Она затрагивает все выпуски до 2.7.6 и устранена в версии 2.7.6. Если Вы используете затронутую версию, обновите Wallet System for WooCommerce до 2.7.6 или новее (рекомендуется последний выпуск, 2.7.8).

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

Это уязвимость плагина, а не ядра WordPress или WooCommerce. Полностью актуальные WordPress и WooCommerce не защищают Вас, если сам плагин Wallet System for WooCommerce находится на затронутой версии.

Является ли это сообщение подлинным?

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

Всё, что я сделал, это просмотрел публично доступные файлы, которые Ваш сайт предоставляет каждому посетителю (точно так же, как публична Ваша главная страница), и отметил номер версии, который плагин Wallet System for WooCommerce публикует в своём публичном файле README.txt. Уязвимой конечной точки я специально не касался, и ничто в этой проверке не затрагивает Ваши данные, Вашу административную панель или какую-либо частную часть Вашего сайта (подробнее в разделе Что я делал и чего не делал ниже).

Если Вы хотите убедиться в том, кто я, ознакомьтесь с контактными данными внизу этой страницы и на странице Обо мне.

Почему это важно

Wallet System for WooCommerce представляет собой дополнение для WooCommerce (около 2 000 активных установок), которое позволяет магазину предложить своим клиентам цифровой кошелёк: клиенты хранят баланс, пополняют его и оплачивают им покупки при оформлении заказа. В затронутых версиях привилегированные действия с кошельком в механизме учётных записей и восстановления пароля плагина были защищены общим токеном безопасности, который плагин выдавал каждому посетителю, вместо настоящей проверки прав, привязанной к тому, кто выполняет запрос. Этот класс ошибок называется обходом аутентификации через альтернативный путь или канал (CWE-288): обычный путь входа в систему проверяет личность корректно, но побочный путь принимает общий токен, как будто тот подтверждает авторизацию.

Практический эффект в том, что запрос, поступающий по этому побочному пути, который доступен любому зарегистрированному клиенту (а магазин с клиентским кошельком почти всегда допускает открытую регистрацию), мог бы действовать как авторизованный пользователь и получить доступ к учётной записи клиента.

Уязвимость получила оценку 7,1 из 10 (высокая степень серьёзности). Чтобы правильно оценить эту цифру: это проблема доступа к учётным записям, она сама по себе не передаёт злоумышленнику Ваш сервер или учётную запись администратора, и нет никаких признаков активной эксплуатации (её нет в каталоге известных эксплуатируемых уязвимостей CISA (Known Exploited Vulnerabilities), и мне не известно ни об одном отчёте об эксплуатации). Если в моём письме упоминалась эта проблема, это означает, что версия, о которой сообщает Ваш сайт, попадает в затронутый диапазон. Я не проверял, уязвим ли Ваш конкретный сайт, лишь то, что он сообщает о затронутой версии.

Хорошая новость: обновление до исправленной версии закрывает брешь, а само обновление несложное.

Как проверить свою версию

Вам не обязательно верить мне на слово относительно того, какую версию Вы используете.

Из публичного манифеста (вход в систему не требуется): откройте в браузере yourdomain.com/wp-content/plugins/wallet-system-for-woocommerce/README.txt. Обратите внимание, что этот плагин поставляет свой файл readme как README.txt (в верхнем регистре), в отличие от многих плагинов, использующих readme.txt в нижнем регистре. Строка Stable tag: вверху содержит версию, о которой сообщает Ваша установка, и это тот же публичный файл, который прочитал я.

Из административной панели WordPress (если у Вас есть доступ):

  1. Войдите в панель управления WordPress (обычно по адресу yourdomain.com/wp-admin).
  2. Перейдите в Plugins затем Installed Plugins.
  3. Найдите Wallet System for WooCommerce и запишите версию, указанную под его названием.

Затем примените следующее правило и учтите, что версии сравниваются численно, а не по алфавиту:

  • Любая версия ниже 2.7.6: затронута, обновитесь сейчас. Каждый более ранний выпуск содержит эту уязвимость; безопасной более старой версии не существует.
  • 2.7.6 или новее, включая 2.7.7 и 2.7.8: уже исправлены.
  • Не дайте себя ввести в заблуждение текстовым порядком: 2.5.11 является более поздним выпуском, чем 2.5.9, поскольку 11 больше, чем 9. Сравнивайте каждое число по очереди, вместо того чтобы читать версию как текст (оба этих примера ниже 2.7.6 и потому затронуты; суть в том, как читать номера версий в целом).

Как обновиться

Самый безопасный путь: обновление через сам WordPress, предварительно создав резервную копию:

  1. Создайте резервную копию Вашего сайта (файлы и база данных) перед внесением изменений. Большинство хостинг-провайдеров предлагают резервное копирование в один клик, или используйте плагин резервного копирования WordPress.
  2. В административной панели WordPress перейдите в Dashboard затем Updates, или Plugins затем Installed Plugins. Если обновление Wallet System for WooCommerce указано в списке, установите его отсюда.
  3. Если Вы предпочитаете командную строку, WP-CLI делает то же самое: wp plugin update wallet-system-for-woocommerce.
  4. Если обновление не появляется, Вы можете получить последний выпуск напрямую со страницы плагина в каталоге WordPress.org, Wallet System for WooCommerce, и обновить его через Plugins затем Add New Plugin затем Upload Plugin.
  5. После обновления подтвердите новый номер версии (2.7.6 или новее; рекомендуется последний выпуск 2.7.8), следуя приведённым выше шагам, и проверьте, что Ваш магазин и его функции кошелька работают нормально.

Раз уж Вы этим занялись, стоит убедиться, что ядро WordPress, WooCommerce и Ваши прочие плагины актуальны, поскольку тот же принцип применим ко всем из них.

После обновления

Обновление до 2.7.6 или новее закрывает проблему, и для большинства магазинов на этом задача завершена. Нет никаких признаков того, что эта уязвимость эксплуатировалась, поэтому никакие экстренные меры не подразумеваются: Вам не нужно считать свой сайт скомпрометированным, отключать его или принудительно сбрасывать пароли.

Поскольку уязвимость могла позволить неавторизованному запросу действовать с учётной записью клиента, разумна одна рутинная последующая проверка: просмотрите недавнюю активность учётных записей и кошельков на предмет чего-либо незнакомого, например корректировок баланса кошелька, которые Вы не делали, запросов на вывод или пополнение средств, которые Вы не узнаёте, или изменений в учётных записях клиентов, которые Ваши клиенты не запрашивали. Отнеситесь к этому как к обычной регулярной проверке, которую магазин проводит периодически, а не как к реагированию на инцидент. Если что-то всё же выглядит неправильно, применяются обычные шаги (сбросьте пароль этого клиента и разберите активность вместе с ним), и Вы можете обратиться ко мне с вопросами.

Что я делал и чего не делал

Чтобы быть полностью прозрачным относительно проверки, стоящей за моим письмом: я лишь читал публичные файлы, которые Ваш сайт уже предоставляет каждому посетителю, а именно публичный файл плагина README.txt и Вашу главную страницу. Я не получал доступ к Вашей административной панели WordPress, Вашей базе данных или какой-либо частной части сайта. В частности, я не касался уязвимой конечной точки и ничего не тестировал и не эксплуатировал.

Это наблюдение на основе версии: Ваш сайт сообщает о версии в затронутом диапазоне. Сайт в этом диапазоне может уже быть защищён иными средствами (например, межсетевым экраном веб-приложений или бэкпортированным исправлением), поэтому данное уведомление не является утверждением, что Ваш сайт был уязвим в момент моей проверки.

У меня нет веб-мастера / я застрял

Если Вы не тот человек, который обслуживает сайт, пожалуйста, перешлите эту страницу тому, кто это делает (Вашему веб-разработчику, агентству или хостинг-провайдеру). Они быстро узнают приведённые выше шаги.

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

Контакты

Evan Harris, исследователь безопасности

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

Источники

Официальные уведомления и отслеживание

Производитель / плагин