Если на сайте стоит VikAppointments не новее 1.2.21 и на странице подтверждения записи опубликовано поле типа File, гость без логина может удалить произвольный файл. В той же записи прямо сказано: удаление wp-config.php открывает путь к выполнению кода. Закрывает 1.2.22, пакет уже в каталоге.
Рядом вторая дыра, тоже без входа и тоже уже с патчем. Beaver Builder смотрите следом: в каталоге 100 000+ активных установок, у календаря 500+. Этих slug нет в списке плагинов, дальше можно не читать.
- VikAppointments, slug vikappointments. Без логина удаление файла, версии по 1.2.21 включительно, патч 1.2.22. В changelog от 30 сентября строка прямая: закрыли удаление произвольных файлов через файловые дополнительные поля.
- Beaver Builder, бесплатная сборка, slug beaver-builder-lite-version. Без логина чужой шорткод, версии по 2.11.0.5, патч 2.11.0.6. Нужна страница билдера с модулем Sidebar и виджетом, куда гость подставляет свой текст. В записи пример: виджет свежих комментариев, если модерация выключена или комментарий уже одобрен. Wordfence ставит 9.1, Patchstack оценивает ту же запись в 5.3.
Поле типа File само при установке не создаётся. Нет его на шорткоде страницы подтверждения, удалять плагину нечего. Сидеть на 1.2.21 из-за этого не стоит: Wordfence, Patchstack и NVD сходятся на CVSS 9.1, логин не нужен. Примером файла в записи назван wp-config.php, его удаление ведёт к выполнению кода.
Перед обновлением на проде снимите бэкап базы и файлов. Оба плагина из каталога, кабинет вендора не нужен.
wp plugin list --fields=name,status,version | grep -Ei 'vikappointments|beaver-builder-lite-version' wp plugin update vikappointments beaver-builder-lite-version