Цепочка ошибок с PHP-десериализацией и gadget chain получила максимальные 10 баллов по CVSS.
<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1024/572;margin-bottom:2rem;overflow:hidden">
<div itemprop="articleBody">Популярный плагин GiveWP для сбора пожертвований на WordPress позволял атакующему начать взлом без учётной записи и в итоге выполнить произвольную системную команду на сервере. Критическая уязвимость CVE-2026-82222 затрагивает версии GiveWP вплоть до 4.16.7.1. Плагин установлен более чем на 100 тысячах сайтов, а Patchstack оценила опасность проблемы в максимальные 10 баллов по шкале CVSS.
Исследователь Udin Chan обнаружил не одну ошибку, а цепочку из нескольких слабых мест, каждое из которых само по себе не давало полного контроля над сервером. Вместе уязвимости превращали обычный процесс работы с пожертвованием в путь к удалённому выполнению кода.
В основе атаки лежит небезопасная десериализация PHP. GiveWP мог принять специально подготовленный сериализованный объект, сохранить связанные с ним данные, а позднее снова преобразовать сохранённую строку в PHP-объект. В поставляемых вместе с плагином библиотеках нашлась подходящая gadget chain, которая позволяла довести такую подмену до вызова системной функции и запуска произвольной команды на сервере.
Для части цепочки требовалась авторизованная сессия, однако заранее регистрироваться на сайте злоумышленнику не требовалось. GiveWP содержал собственный механизм регистрации, который мог создавать пользователя даже тогда, когда обычная регистрация WordPress была отключена. В более новых уязвимых версиях разработчики частично ограничили доступность цепочки, поэтому конкретные условия эксплуатации зависели от конфигурации сайта и используемых форм пожертвований.
После создания пользователя злоумышленник мог добиться сохранения подготовленного объекта в данных, связанных с донором и сессией пожертвования. При последующем чтении GiveWP снова десериализовал содержимое, после чего встроенная цепочка объектов позволяла добраться до выполнения команды от имени процесса веб-сервера. В результате атакующий потенциально получал возможность установить бэкдор и полностью захватить сайт.
Patchstack сообщила разработчикам об уязвимости ещё 28 июля. До выхода окончательного исправления исследователи отклонили несколько предложенных вариантов патча, поскольку цепочка оставалась работоспособной. Полноценное исправление появилось 27 августа в GiveWP 4.16.7.2, а технические подробности Patchstack раскрыла 28 августа.
В версии 4.16.7.2 разработчики решили не закрывать единственную точку входа, а разорвали цепочку сразу в нескольких местах. GiveWP теперь отбрасывает подозрительные сериализованные данные до сохранения, запрещает восстановление произвольных PHP-классов при чтении, дополнительно очищает пользовательские поля и проверяет объекты внутри использованной gadget chain. Обновление также удаляет потенциально опасные сериализованные объекты, которые могли попасть в базу данных до установки патча.
Владельцам сайтов с GiveWP рекомендуется обновить плагин как минимум до версии 4.16.7.2. Patchstack предупреждает, что уязвимости такого класса подходят для массовых автоматизированных атак, поэтому откладывать установку исправления рискованно.
<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1024/572;margin-bottom:2rem;overflow:hidden">
<div itemprop="articleBody">Популярный плагин GiveWP для сбора пожертвований на WordPress позволял атакующему начать взлом без учётной записи и в итоге выполнить произвольную системную команду на сервере. Критическая уязвимость CVE-2026-82222 затрагивает версии GiveWP вплоть до 4.16.7.1. Плагин установлен более чем на 100 тысячах сайтов, а Patchstack оценила опасность проблемы в максимальные 10 баллов по шкале CVSS.
Исследователь Udin Chan обнаружил не одну ошибку, а цепочку из нескольких слабых мест, каждое из которых само по себе не давало полного контроля над сервером. Вместе уязвимости превращали обычный процесс работы с пожертвованием в путь к удалённому выполнению кода.
В основе атаки лежит небезопасная десериализация PHP. GiveWP мог принять специально подготовленный сериализованный объект, сохранить связанные с ним данные, а позднее снова преобразовать сохранённую строку в PHP-объект. В поставляемых вместе с плагином библиотеках нашлась подходящая gadget chain, которая позволяла довести такую подмену до вызова системной функции и запуска произвольной команды на сервере.
Для части цепочки требовалась авторизованная сессия, однако заранее регистрироваться на сайте злоумышленнику не требовалось. GiveWP содержал собственный механизм регистрации, который мог создавать пользователя даже тогда, когда обычная регистрация WordPress была отключена. В более новых уязвимых версиях разработчики частично ограничили доступность цепочки, поэтому конкретные условия эксплуатации зависели от конфигурации сайта и используемых форм пожертвований.
После создания пользователя злоумышленник мог добиться сохранения подготовленного объекта в данных, связанных с донором и сессией пожертвования. При последующем чтении GiveWP снова десериализовал содержимое, после чего встроенная цепочка объектов позволяла добраться до выполнения команды от имени процесса веб-сервера. В результате атакующий потенциально получал возможность установить бэкдор и полностью захватить сайт.
Patchstack сообщила разработчикам об уязвимости ещё 28 июля. До выхода окончательного исправления исследователи отклонили несколько предложенных вариантов патча, поскольку цепочка оставалась работоспособной. Полноценное исправление появилось 27 августа в GiveWP 4.16.7.2, а технические подробности Patchstack раскрыла 28 августа.
В версии 4.16.7.2 разработчики решили не закрывать единственную точку входа, а разорвали цепочку сразу в нескольких местах. GiveWP теперь отбрасывает подозрительные сериализованные данные до сохранения, запрещает восстановление произвольных PHP-классов при чтении, дополнительно очищает пользовательские поля и проверяет объекты внутри использованной gadget chain. Обновление также удаляет потенциально опасные сериализованные объекты, которые могли попасть в базу данных до установки патча.
Владельцам сайтов с GiveWP рекомендуется обновить плагин как минимум до версии 4.16.7.2. Patchstack предупреждает, что уязвимости такого класса подходят для массовых автоматизированных атак, поэтому откладывать установку исправления рискованно.
- Источник новости
- www.securitylab.ru