WooCommerce устраняет уязвимость, из-за которой 5 миллионов сайтов подверглись краже данных

Источник · Перевод автора

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

Администраторам настоятельно рекомендуется установить последнюю версию платформы, поскольку уязвимость затрагивает более 90 версий, начиная с 5.5.0.

Плагин WooCommerce, принадлежащий Automattic, компании, стоящей за сервисом ведения блогов WordPress.com, имеет более пяти миллионов установок.

Неправильная дезинфекция

В сегодняшнем сообщении команда WooCommerce говорит, что ошибка критическая, а также влияет на плагин WooCommerce Blocks для отображения продуктов в сообщениях и на страницах.

Оба плагина получили обновление до версии 5.5.1. Исправление распространяется на уязвимые версии (WooCommerce 3.3–5.5 и WooCommerce Blocks 2.5–5.5).

Уязвимость еще не получила номер отслеживания, но ее оценка серьезности была рассчитана на уровне 8,2 из 10 компанией Patchstack, которая защищает сайты WordPress от уязвимостей плагинов.

Оливер Силд (Oliver Sild), основатель и генеральный директор Patchstack, предоставляет некоторые технические подробности об ошибке, отметив, что исправление устраняет недостаток, изменяя два файла PHP, которые позволяли внедрять вредоносный код в операторы SQL без необходимости аутентификации.

Внедрение стало возможным из-за «функции поиска через веб-перехватчик, которая вводила параметр поиска в запрос SQL без использования подготовленного оператора».

Силд объясняет, что, несмотря на использование функций sanitize_text_field и esc_like, последние можно использовать без подготовленного оператора, чего больше не происходит в версии 5.5.1.

Что касается отсутствия аутентификации, исследователь говорит, что это произошло из-за неправильного выхода параметра $ attributes в общедоступной конечной точке, которая не требовала аутентификации.

«Параметр $ attributes в этой конечной точке (строка 86) берется из пользовательского ввода, а затем обрабатывается и вводится в SQL-запрос, который не был экранирован должным образом», – говорит Силд.

Далее исследователь пояснил, что «единственной обработкой этого параметра была функция sanitize_title (через wc_sanitize_taxonomy_name). Однако это не обеспечивает достаточной защиты».

Риск эксплуатации

Затронутые установки WooCommerce в настоящее время получают исправление автоматически с помощью команды плагинов WordPress.org. Сайты на платформе для ведения блогов WordPress.com уже получили исправление.

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

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

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

WooCommerce настоятельно рекомендует выполнить обновление до последней версии с последующим изменением паролей.

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