Уязвимость в GiveWP: любой может запустить код на сервере
Подписан на блог Patchstack — вышла запись про уязвимость в GiveWP, которая позволяет любому пользователю без авторизации запустить произвольный код на сервере. Речь о версиях до 4.16.7.1, и она затрагивает сайты с хотя бы одной опубликованной формой доната и активным платежным шлюзом. Всё, что нужно — создать аккаунт, залить в профиль сериализованный объект, а потом инициировать оплату. Уязвимость устроена как цепочка: битый метод десериализации, уязвимый поток оплаты, и готовый «гаджет» в коде. Потенциал — полный контроль над сервером.
Считаю, что это не просто «ещё одна уязвимость» — это прямой путь к захвату сервера без пароля. Особенно тревожит, что уязвимость доступна без авторизации и не требует никаких настроек: достаточно просто зарегистрироваться. Это не баг, это архитектурная ошибка. Никакой «сброс» или «восстановление» не спасёт — если сайт уже был атакован, в нём уже лежит вредоносный код. А если не был — риск высокий, потому что боты уже сканируют такие точки.
Я уже проверил у своих клиентов: у кого есть GiveWP — обновляю в первую очередь. У тех, кто на версиях ниже 4.16.6, уже давно может быть заражение. У кого 4.16.6–4.16.7.1 — риск не исчез, просто стал чуть сложнее. Считаю, что даже если уязвимость не активно эксплуатируется, лучше не ждать. Уже начал обновлять, а у остальных поставил в план на неделю. Пока смотрю, но не теряю время — уязвимость не требует действий со стороны админа, и боты её уже находят.