За одну неделю пришли две неприятные новости - и привычно тихая админка WordPress уже не кажется такой успокаивающей. Сначала украли ключи подключения UpdraftCentral. Потом заговорили о PHP2Shell - двух уязвимостях в самом PHP. Мы проверили все сайты клиентов на обслуживании. Результат обнадежил, но делать из него вывод «теперь нам ничего не грозит» нельзя. Где-то помогла наша настройка. А где-то, скажем прямо, повезло.
Что случилось за ту неделю
17-18 октября взломали TeamUpdraft - компанию, которая выпускает UpdraftPlus. Злоумышленник украл ключи подключения UpdraftCentral и через них отправлял команды на подключенные сайты. Сейчас TeamUpdraft подтверждает: с помощью этих подключений атакующий создавал учетные записи администраторов и ставил вредоносные плагины. Полный масштаб взлома пока неизвестен.
19 октября вышли UpdraftPlus 1.26.13 для бесплатной версии и 2.26.13 для Premium. Обновления отзывают старые ключи UpdraftCentral. Первое предупреждение мы разбирали в статье про украденные ключи UpdraftCentral. Но есть и более поздняя деталь: 21 октября TeamUpdraft посоветовала пользователям Premium искать незнакомые плагины и новых администраторов, даже если они никогда не пользовались UpdraftCentral.
А 20-21 октября появилась новость о PHP2Shell. Это две критические уязвимости PHP - CVE-2026-109618 и CVE-2026-109619. Исправления вошли в PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35. Тут дело не в плагине WordPress: кнопка обновления в wp-admin не поможет. Хостинг должен обновить PHP и перезапустить его.
Как мы проверяли сайты клиентов - и почему ничего не меняли
Все сайты клиентов на обслуживании мы проверили в тот же и на следующий день. Это был аудит только на чтение: во время проверки мы ничего на сайтах не меняли. Смотрели, записывали находки, сообщали о результате. Важно разделять проверку и последующие действия - иначе потом сложно понять, что уже было на сайте, а что изменилось после вашего вмешательства.
Такие проверки входят в обслуживание WordPress от 39€ в месяц. Обычно они проходят без особого шума. В этот раз поводов присмотреться было больше. Главная страница может бодро открываться, пока в админке сидит чужой юзер с полными правами. Для магазина это особенно неприятно: заказы идут, владелец занят отгрузками, а подозрительную учетку никто не замечает.
- Ни один сайт клиентов на обслуживании не пострадал от атаки на UpdraftPlus или PHP2Shell. Признаков эксплуатации PHP2Shell мы тоже не нашли.
- На всех этих сайтах стояла бесплатная версия UpdraftPlus. Ни одна установка не была подключена к UpdraftCentral или учетной записи TeamUpdraft - украденным ключам некуда было вести.
- Мы не нашли незнакомых плагинов и новых администраторов из числа тех следов, которые атака через UpdraftCentral оставляла на других сайтах начиная с 17 октября.
- После этого все найденные нами клиентские установки UpdraftPlus работают на 1.26.13, в том числе на сайтах вне нашего плана обслуживания.
- Примерно 90% проверенных сайтов размещены на хостингах, которые поставили патч PHP в тот же день. Остальные работают на старых ветках PHP - мы переносим их на поддерживаемую версию.
Результат хороший. Но не волшебный щит. В случае с UpdraftPlus сработала простая вещь: мы не держали ненужное подключение к удаленной панели, а значит, не было и ключей, которыми атакующий мог бы воспользоваться. С PHP многое зависело от скорости хостингов. Поменяйся эти обстоятельства - проверка могла бы закончиться иначе.
С PHP2Shell все сложнее, чем кажется по заголовкам
После нашей первой статьи о PHP2Shell появились новые подробности. В лаборатории Wordfence удалось добиться выполнения кода через одну из уязвимостей только на специально настроенной сборке PHP. Та же проверка на стандартной сборке вместо этого приводила к сбою. В тестах с WordPress 7.1.3 вторая уязвимость вызывала ошибки PHP и перезапуски, а не выполнение кода.
Значит, сервер без патча можно оставить как есть? Нет. Wordfence предупреждает: атаку могут подстроить под конкретный сервер, поэтому считать его безопасным рано. Patchstack сообщила, что партнерские хостинги подтвердили несколько реальных случаев эксплуатации. А Cloudflare говорила о миллионах попыток атак. Именно попыток - не о миллионах успешных взломов. Это разные вещи, хотя в пугающих заголовках разница часто теряется.
Мой вывод такой: «завтра взломают всех» - чересчур громко. Но и «сайт вроде работает, PHP пока не трогаем» - слишком беспечно. Лучше спросить хостинг прямо: поставили ли исправление и перезапустили ли PHP. Не пытайтесь угадать ответ только по номеру версии, который показывает WordPress.
Что проверить на своем сайте
Разбираться во внутренностях PHP не придется. Выделите минут десять на админку, потом задайте хостингу один конкретный вопрос. Ответ сохраните - хотя бы в переписке. Если через неделю придется возвращаться к проблеме, он пригодится больше, чем смутное «поддержка сказала, что все нормально».
- Обновите UpdraftPlus. Для бесплатного плагина нужна версия 1.26.13 или новее, для Premium - 2.26.13 или новее. Откройте
Settings > UpdraftPlus > Advanced Tools > UpdraftCentralи удалите ключи подключений, которыми не пользуетесь. Проверка займет пару минут. - Если у вас Premium, проверьте пользователей и плагины. В
Usersпосмотрите, нет ли незнакомых администраторов. Загляните вPlugins, включая Must-Use plugins: не появилось ли то, что вы не устанавливали? Сделайте это, даже если UpdraftCentral никогда не подключали. - Уточните статус патча PHP. Версию PHP можно посмотреть в
Tools > Site Health > Info > Server. Затем спросите хостинг, исправлен ли PHP от PHP2Shell и был ли перезапуск. Ответ «мы регулярно обновляем серверы» - не ответ на этот вопрос. - Если у вас PHP 8.1 или старше, запланируйте переход. Не ждите следующей тревожной новости. Попросите того, кто обслуживает сайт, проверить совместимость темы и плагинов, затем назначить переход на поддерживаемую версию. Саму проверку можно начать с короткого списка того, что стоит на сайте; перенос лучше согласовать отдельно.
- Сохраните бэкапы, сделанные до 17 октября. Заметили странную учетку или плагин? Просто удалить находку и забыть - плохая идея. Сначала нужно выяснить, как она появилась и что успела сделать. Очистка взломанного сайта - это не только удаление малвари, но и поиск причины. И да, бэкап пока не перезаписывайте.
- Уберите подключения, которые больше не нужны. Это касается удаленного управления и плагинов, поставленных ради разовой задачи несколько месяцев назад. Если фишка уже не нужна, зачем оставлять ей доступ?
Что я вынес из этой проверки
Я рад, что среди сайтов наших клиентов на обслуживании мы не нашли пострадавших от атаки на UpdraftPlus или PHP2Shell. Но будь у них другие подключения или промедли хостинги с патчем, неделя вышла бы совсем другой. Бесплатный UpdraftPlus без подключения к UpdraftCentral не был доступен через те украденные ключи. Это узкий вывод о конкретной атаке, а не обещание, что любой сайт защищен от всего.
Если сегодня успеваете сделать только одно дело, напишите в поддержку хостинга: «Версия PHP, на которой работает мой сайт, получила патч от PHP2Shell? После этого PHP перезапустили?» А потом проверьте подключения UpdraftPlus. Два конкретных ответа полезнее еще одного грозного заголовка.