Честно говоря, когда я впервые услышала об обновлении WordPress 7.0.3, вышедшем 6 августа 2026 года, то по привычке чуть не отложила его установку на потом. Дел всегда невпроворот, а очередной патч безопасности часто воспринимается как что-то рутинное. Но в этот раз всё оказалось гораздо серьезнее. Речь шла не просто о мелкой ошибке в интерфейсе, а о дыре, через которую злоумышленник мог пробраться в самое сердце сайта, даже не имея учетной записи. Я углубилась в детали, и теперь понимаю, насколько близко мы все были к большой беде.
Масштаб угрозы: невидимый захват через экран входа
Уязвимость, получившая идентификатор CVE-2026-64638, сразу привлекла мое внимание своей оценкой — 8,9 балла по шкале CVSS. Это очень высокий показатель, который говорит о критичности проблемы. Суть её заключалась в возможности провести атаку типа «межсайтовый скриптинг» (XSS) на этапе, предшествующем аутентификации. Звучит сложно, но на деле это означало, что кто угодно мог внедрить вредоносный JavaScript-код прямо в стандартную форму входа на сайт. И для этого не требовалось взламывать чей-то пароль или подбирать ключи. Пугающая простота.
Позже я прочитала, что исследователи из компании pwn.ai, обнаружившие проблему 26 июля, дали этой цепочке атак говорящее название — XSS2Shell. Оно идеально отражает суть: переход от безобидного, на первый взгляд, скрипта в браузере к полноценному выполнению команд на сервере. Они воспроизвели всю схему на стандартной, только что установленной версии WordPress, без каких-либо специфичных настроек хостинга. Это значит, что под ударом находились миллионы сайтов, владельцы которых даже не подозревали об опасности. Команда разработчиков WordPress была уведомлена уже на следующий день, 27 июля, что говорит о серьезности и срочности ситуации.
Механика взлома: от кривого имени пользователя до PHP-файла
Мне стало интересно разобраться, как именно работала эта атака. Всё начиналось с невероятно простого действия: отправки специально сформированного, «ядовитого» имени пользователя на страницу wp-login.php. Самое хитрое здесь заключалось в различиях между тем, как фильтруют HTML-код функции самого WordPress и базовые механизмы PHP. Из-за этой несогласованности вредоносные элементы умудрялись проскочить через первичную защиту и оказывались прямо в DOM-структуре страницы с ошибкой входа. А дальше — больше. Оказавшись на странице, вредоносный скрипт автоматически инициировал запрос от имени сайта, используя встроенные механизмы WordPress.
Однако, как я выяснила, полный захват сервера не происходил по щелчку пальцев. Для перехода от XSS к выполнению PHP-кода требовалось стечение нескольких обстоятельств. Атакующему нужно было, чтобы администратор сайта в этот момент имел активную сессию, то есть был залогинен. Затем этого администратора нужно было заманить на вредоносную страницу, находящуюся под контролем злоумышленника, и вынудить выполнить какое-то действие в браузере. Это, безусловно, элемент социальной инженерии. В демонстрации pwn.ai показали, как после этого можно создать пароль приложения, получить доступ к REST API, опубликовать страницу с вредоносным кодом и, наконец, загрузить ZIP-архив с PHP-файлом, открывающим полный контроль над сайтом. Разработчики WordPress справедливо отметили, что такая эскалация не была автоматической, но для опытного хакера обмануть занятого администратора — задача вполне решаемая. Я сразу вспомнила, сколько раз я сама, не глядя, кликала по разным уведомлениям, когда работала над срочными задачами, и мне стало не по себе.
Реакция и спасение: кто в зоне риска и что делать
К счастью, команда WordPress сработала оперативно. Исправления были выпущены для всех поддерживаемых веток, вплоть до версии 4.7. Это огромный ретроспективный пласт, который показывает, насколько фундаментальной была проблема. Многие сайты, у которых настроены автоматические фоновые обновления, скорее всего, уже получили патч без участия владельца. Но я для себя усвоила железное правило: никогда не полагаться только на автоматику. Разработчики настоятельно рекомендовали проверить версию вручную и установить обновление немедленно. Это занимает пару минут, но может сэкономить недели на восстановление сайта.
Отдельного внимания заслуживает судьба сайтов на версиях старше 4.7. Они остаются уязвимыми, так как не входят в текущий диапазон обратного переноса исправлений. Для меня это сигнал, что использование устаревшего программного обеспечения сродни оставлению входной двери открытой. На 7 августа 2026 года, к моему облегчению, не было зафиксировано массовой эксплуатации CVE-2026-64638 в реальных атаках. Исследователи подтвердили работу XSS на чистых установках WordPress 7.0.2, а полную цепочку до выполнения PHP-кода проверяли отдельно, в локальной изолированной среде. Это говорит о том, что у нас, администраторов, было небольшое окно возможностей, чтобы защититься до того, как информацию об уязвимости начнут использовать злоумышленники в дикой природе. Помимо самого обновления, я настоятельно рекомендую всем провести ревизию: проверить способы продления ресурса безопасности сайта, изучив журналы входа, списки пользователей, недавние публикации и, что особенно важно, загрузки плагинов. Любая подозрительная активность, совпадающая по времени с моментом до установки патча, должна быть расследована.
Вся эта история стала для меня мощным напоминанием о том, что безопасность — это не разовая акция, а непрерывный процесс. Мы часто откладываем обновления, боясь, что что-то сломается, но реальность такова, что гораздо страшнее оставить всё как есть и однажды обнаружить свой сайт в руках злоумышленников. Лучше потратить час на проверку и обновление, чем потерять всё, что нарабатывалось годами.