🌐 WordPress CVE-2026-87902 — 10-летняя дыра в ядре. В активной эксплуатации с первых часов
Коллеги, если у вас на балансе или поддержке есть хоть один сайт на WordPress (корпоративный портал, лендинг визитка или старый блог) — бросайте текущие таски и проверяйте версии прямо сейчас.
📌 ФАКТЫ
Уязвимость:
Масштаб катастрофы: уязвимы все версии с WordPress 4.7.0 по 7.1.1 — это почти 10 лет релизов.
Где поправлено: релиз 7.1.2 + выпущены бэкпорты во все поддерживаемые ветки вплоть до 4.7.
В чём суть бага: функция
Автообновления раскатывали фикс с 22 сентября, но дыра уже внесена в CISA KEV. Сканирование и эксплуатация начались практически сразу после публикации адвайзори.
⚠️ КОГДА LFI ПРЕВРАЩАЕТСЯ В ПОЛНЫЙ RCE
Для удаленного выполнения кода злоумышленнику требуется совпадение трех факторов:
Каталог в теме: внутри активной темы есть директория верхнего уровня с префиксом
Файл-трамплин: на сервере присутствует пригодный для инклуда PHP-скрипт (классический вектор —
Окружение PHP: включена директива
🛠 БЫСТРЫЙ ЧЕК ЧЕРЕЗ КОНСОЛЬ
Bash
🛡 ЧТО ДЕЛАТЬ (ЧЕКЛИСТ)
Обновиться: накатить
Bash
Проверить автообновления: убедитесь, что в
Харденинг (если немедленный патч невозможен): принудительно выставить
Форензика при совпадении условий: если все три фактора RCE сошлись, а сайт не был обновлен до 22 сентября — ищите новосозданные
#wordpress #security #web #cve #kev #lfi #rce #php #sysadmin #admin_future
Коллеги, если у вас на балансе или поддержке есть хоть один сайт на WordPress (корпоративный портал, лендинг визитка или старый блог) — бросайте текущие таски и проверяйте версии прямо сейчас.
📌 ФАКТЫ
Уязвимость:
CVE-2026-87902 (CVSS 4.0: 9.2, CWE-98).Масштаб катастрофы: уязвимы все версии с WordPress 4.7.0 по 7.1.1 — это почти 10 лет релизов.
Где поправлено: релиз 7.1.2 + выпущены бэкпорты во все поддерживаемые ветки вплоть до 4.7.
В чём суть бага: функция
get_page_template() в wp-includes/template.php парсила имя шаблона напрямую из параметра pagename без вызова validate_file(). Итог — неаутентифицированный Local File Inclusion (LFI).Автообновления раскатывали фикс с 22 сентября, но дыра уже внесена в CISA KEV. Сканирование и эксплуатация начались практически сразу после публикации адвайзори.
⚠️ КОГДА LFI ПРЕВРАЩАЕТСЯ В ПОЛНЫЙ RCE
Для удаленного выполнения кода злоумышленнику требуется совпадение трех факторов:
Каталог в теме: внутри активной темы есть директория верхнего уровня с префиксом
page- (типичная история для дефолтных тем WordPress и популярных кастомных шаблонов).Файл-трамплин: на сервере присутствует пригодный для инклуда PHP-скрипт (классический вектор —
pearcmd.php из состава PEAR).Окружение PHP: включена директива
register_argc_argv = On. Она по умолчанию активна в официальных Docker-образах PHP, а также на хостингах с cPanel на версиях PHP ниже 8.5.🛠 БЫСТРЫЙ ЧЕК ЧЕРЕЗ КОНСОЛЬ
Bash
# 1. Проверяем текущую версию WordPress
grep "wp_version =" /var/www/*/wp-includes/version.php
# или через WP-CLI:
wp core version --path=/var/www/site
# 2. Проверяем фактор риска №1 (каталоги page-* в активной теме)
ls -d /var/www/site/wp-content/themes/*/page-*/ 2>/dev/null
# 3. Ищем pearcmd.php на хосте
find / -name pearcmd.php 2>/dev/null
# 4. Проверяем флаг register_argc_argv
php -i | grep "register_argc_argv"
# 5. Грепаем логи веб-сервера на попытки пробить path traversal
grep -E "pagename=.*(\.\./|%2e%2e)" /var/log/nginx/access.log* /var/log/apache2/access.log* 2>/dev/null
🛡 ЧТО ДЕЛАТЬ (ЧЕКЛИСТ)
Обновиться: накатить
7.1.2 (или минорный секьюрити-патч для вашей ветки):Bash
wp core update --path=/var/www/site
Проверить автообновления: убедитесь, что в
wp-config.php не захардкожены флаги AUTOMATIC_UPDATER_DISABLED = true или WP_AUTO_UPDATE_CORE = false.Харденинг (если немедленный патч невозможен): принудительно выставить
register_argc_argv = Off в php.ini и полностью снести пакет PEAR, если он не задействован в проекте.Форензика при совпадении условий: если все три фактора RCE сошлись, а сайт не был обновлен до 22 сентября — ищите новосозданные
.php файлы и веб-шеллы в директории wp-content/uploads/.Уверенность в том, что «сайт на WP сам обновляется в фоне» — опасная иллюзия, пока вы лично не убедились в версии через CLI. Делов на одну строчку в терминале.
#wordpress #security #web #cve #kev #lfi #rce #php #sysadmin #admin_future