Уязвимость критической серьезности была обнаружена и исправлена ​​в плагине Better Search replace для WordPress, который имеет более 1 миллиона активных установок на веб-сайтах. Успешные атаки могут привести к произвольному удалению файлов, извлечению конфиденциальных данных и выполнению кода.

Уровень серьезности уязвимости

Серьезность уязвимостей оценивается по балльной системе с рейтингами от низкой до критической:

  • Низкий 0,1-3,9
  • Средний 4,0-6,9
  • Высокий 7,0-8,9
  • Критический 9,0-10,0

Серьезность уязвимости, обнаруженной в плагине Better Search replace, оценивается как Critical, то есть высший уровень, с оценкой 9,8 по шкале серьезности от 1 до 10.

Иллюстрация WordfenceСнимок экрана с рейтингом серьезности 9,8 уязвимости, обнаруженной в плагине Better Search Заменить WordPress

Лучший поиск Заменить плагин WordPress

Плагин разработан WP Engine, но изначально он был создан компанией-разработчиком Delicious Brains, которая была приобретена WP Engine. Better Search replace — это инструмент WordPress для тополя, который упрощает и автоматизирует процесс выполнения задачи поиска и замены в базе данных веб-сайта WordPress, что полезно при задаче миграции сайта или сервера. Плагин поставляется в бесплатной и платной версии Pro.

На сайте плагина перечислены следующие функции бесплатной версии:

  • «Поддержка сериализации для всех таблиц
  • Возможность выбора конкретных таблиц
  • Возможность запустить «пробный прогон», чтобы увидеть, сколько полей будет обновлено.
  • Никаких требований к серверу, кроме работающей установки WordPress.
  • Поддержка мультисайтов WordPress»

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

Популярность плагина обусловлена ​​простотой использования, полезностью и историей заслуживающего доверия плагина.

Уязвимость PHP-инъекции объектов

Уязвимость внедрения PHP-объектов в контексте WordPress возникает, когда вводимые пользователем данные небезопасно десериализуются. Десериализация — это процесс, в котором строковые представления объектов преобразуются обратно в объекты PHP.

ЧИТАТЬ  Создание и продвижение сайтов в Кирове

Некоммерческий проект Open Worldwide Application Security Project (OWASP) предлагает общую описание уязвимости PHP Object Injection:

«Внедрение объектов PHP — это уязвимость уровня приложения, которая может позволить злоумышленнику выполнять различные виды вредоносных атак, такие как внедрение кода, внедрение SQL, обход пути и отказ в обслуживании приложений, в зависимости от контекста.

Уязвимость возникает, когда вводимые пользователем данные не очищаются должным образом перед передачей в PHP-функцию unserialize(). Поскольку PHP допускает сериализацию объектов, злоумышленники могут передавать специальные сериализованные строки уязвимому вызову unserialize(), что приводит к внедрению произвольных объектов PHP в область приложения.

Для успешной эксплуатации уязвимости PHP Object Injection необходимо выполнить два условия:

  • Приложение должно иметь класс, реализующий магический метод PHP (например, __wakeup или __destruct), который можно использовать для проведения вредоносных атак или для запуска «цепочки POP».
  • Все классы, используемые во время атаки, должны быть объявлены при вызове уязвимой функции unserialize(), в противном случае для таких классов должна поддерживаться автозагрузка объектов».

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

В случае с плагином Better Search replace уязвимость была обнаружена в способе обработки десериализации во время операций поиска и замены. Важнейшей функцией безопасности, отсутствовавшей в этом сценарии, была цепочка POP — серия связанных классов и функций, которые злоумышленник может использовать для запуска вредоносных действий при десериализации объекта.

ЧИТАТЬ  Вебинар Изменения в сфере обработки персональных данных - 06 марта 2024 г. | Цифровые мероприятия

Хотя плагин Better Search replace не содержал такой цепочки, оставался риск того, что если другой плагин или тема, установленная на том же веб-сайте, будет содержать цепочку POP, это может позволить злоумышленнику начать атаки.

Wordfence описывает уязвимость:

«Плагин Better Search replace для WordPress уязвим к внедрению объектов PHP во всех версиях до 1.4.4 включительно из-за десериализации ненадежных входных данных.
Это позволяет неаутентифицированным злоумышленникам внедрить объект PHP.

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

В ответ на это открытие WP Engine оперативно устранил проблему. В журнале изменений обновления до версии 1.4.5, выпущенного 18 января 2024 г., описаны принятые меры:

«Безопасность: десериализация объекта во время операций поиска и замены теперь передает 'allowed_classes' => false, чтобы избежать создания экземпляра объекта и потенциального запуска вредоносного кода, хранящегося в базе данных».

Это обновление появилось после ответственного раскрытия Wordfence уязвимости 18 декабря 2023 года, после чего WP Engine разработал и протестировал исправление.

Что делать в ответ

Пользователям плагина Better Search replace рекомендуется немедленно обновить его до последней версии, чтобы защитить свои веб-сайты от нежелательных действий.



Source link