Критическая уязвимость в WordPress (CVE-2026-119977)
| Дата публикации | 31 октября 2026 года |
| CVE | CVE-2026-119977 |
| Продукт | WordPress Core |
| Компонент | Механизм обновления ядра WordPress |
| Тип уязвимости | TOCTOU Race Condition (CWE-367), удалённое выполнение кода (RCE) |
| Уровень опасности | Высокий |
| Оценка CVSS 3.1 | 8,1 из 10 |
| Вектор атаки | Через сеть |
| Требуется аутентификация | Нет |
| Уязвимые версии | WordPress 4.7.0–7.1.3, включая промежуточные ветки |
| Исправлено в | WordPress 7.1.4 и соответствующие исправленные релизы предыдущих веток |
| Эксплуатация в реальных атаках | Подтверждена, CVE включена в каталог CISA KEV |
Введение
31 октября 2026 года была опубликована информация об уязвимости CVE-2026-119977 в ядре WordPress. Ошибка связана с процессом обновления CMS и при определённых условиях позволяет удалённому злоумышленнику выполнить произвольный код на сервере без авторизации.
Проблема возникает во время обновления WordPress полным пакетом. Временные файлы распаковываются в предсказуемый каталог, доступный через веб-сервер. Если злоумышленник обратится к этим файлам в короткий промежуток времени, пока обновление ещё не завершено, он может воспользоваться особенностью обработки временных файлов и добиться выполнения произвольного кода.
3 ноября 2026 года она была добавлена в каталог CISA Known Exploited Vulnerabilities (KEV), что указывает на подтверждённую эксплуатацию в реальных атаках.
В чём заключается проблема
Уязвимость находится в механизме обновления ядра WordPress. При установке обновления полным пакетом CMS сначала загружает архив с новыми файлами, а затем распаковывает его во временный каталог.
Проблема заключается в том, что временный каталог создавался по предсказуемому пути внутри директории обновлений, которая может быть доступна через веб-сервер. В результате файлы, предназначенные только для внутреннего процесса обновления, на короткое время становятся доступны извне.
Злоумышленнику не требуется учётная запись WordPress. Достаточно дождаться начала обновления и успеть обратиться к подготовленным файлам в промежутке между их распаковкой и завершением установки.
Как работает атака
В основе уязвимости лежит ошибка класса TOCTOU (Time-of-check to time-of-use). Это ситуация, когда программа проверяет состояние объекта, но между проверкой и его использованием состояние успевает измениться.
В случае WordPress проблема возникает при распаковке полного пакета обновления:
- Администратор запускает обновление ядра WordPress.
- CMS загружает архив с новыми файлами.
- Архив распаковывается во временный каталог внутри директории обновлений.
- Каталог имеет предсказуемый путь и может быть доступен через веб-сервер.
- Злоумышленник пытается обратиться к временным файлам до завершения процесса обновления.
Если атакующему удаётся попасть в это временное окно и использовать подготовленные файлы, он может добиться выполнения произвольного кода на сервере.
Важно понимать, что это не обычная уязвимость, позволяющая отправить один запрос на любой сайт WordPress и сразу получить выполнение кода. Эксплуатация зависит от того, выполняется ли в данный момент обновление ядра полным пакетом, а также от доступности временных файлов через веб-сервер.
Какие версии WordPress затронуты
Уязвимость затрагивает большое количество веток WordPress, начиная с версии 4.7.0. Исправления выпущены для следующих веток:
| Ветка | Исправленная версия | Загрузка |
|---|---|---|
| 7.1 | 7.1.4 | Скачать |
| 7.0 | 7.0.8 | Скачать |
| 6.9 | 6.9.11 | Скачать |
| 6.8 | 6.8.12 | Скачать |
| 6.7 | 6.7.11 | Скачать |
| 6.6 | 6.6.11 | Скачать |
| 6.5 | 6.5.14 | Скачать |
| 6.4 | 6.4.14 | Скачать |
| 6.3 | 6.3.14 | Скачать |
| 6.2 | 6.2.15 | Скачать |
| 6.1 | 6.1.16 | Скачать |
| 6.0 | 6.0.18 | Скачать |
| 5.9 | 5.9.20 | Скачать |
| 5.8 | 5.8.19 | Скачать |
| 5.7 | 5.7.21 | Скачать |
| 5.6 | 5.6.23 | Скачать |
| 5.5 | 5.5.24 | Скачать |
| 5.4 | 5.4.25 | Скачать |
| 5.3 | 5.3.27 | Скачать |
| 5.2 | 5.2.30 | Скачать |
| 5.1 | 5.1.28 | Скачать |
| 5.0 | 5.0.31 | Скачать |
| 4.9 | 4.9.35 | Скачать |
WordPress официально выпустил исправление в версии 7.1.4 от 28 октября 2026 года. Исправления также перенесены в предыдущие поддерживаемые ветки вплоть до 4.7.
Как устранить уязвимость
Основной способ защиты - обновить WordPress до исправленной версии.
- Для ветки 7.1 установите WordPress 7.1.4 или новее.
- Для остальных веток используйте соответствующие исправленные версии из таблицы.
- Если сайт использует автоматические обновления, проверьте, что обновление действительно завершилось успешно.
- После обновления убедитесь, что установленная версия отображается в административной панели WordPress.
Обновление можно выполнить через административную панель: откройте раздел «Консоль» → «Обновления» и нажмите «Обновить сейчас».
Временные меры защиты
Если немедленно обновить WordPress невозможно, необходимо ограничить доступ извне к временным каталогам обновления.
В частности, запретите HTTP-доступ к каталогу:
/wp-content/upgrade/
Для Apache это можно сделать с помощью конфигурации виртуального хоста или правил доступа. Например:
<Directory "/var/www/html/wp-content/upgrade">
Require all denied
</Directory>
Если используется Nginx:
location ^~ /wp-content/upgrade/ {
deny all;
return 403;
}
Проверьте конфигурацию и примените изменения:
nginx -t && systemctl reload nginx
Путь /var/www/html необходимо заменить на фактический каталог установки WordPress. Для Nginx аналогичное ограничение можно настроить через директиву location.
Дополнительно рекомендуется контролировать обращения к каталогу обновлений и проверять журналы веб-сервера во время установки обновлений.
Ограничение доступа к каталогу обновлений является временной мерой и не заменяет установку исправленной версии WordPress.
После применения правил доступа обязательно проверьте штатное обновление CMS. Некорректная конфигурация веб-сервера может помешать обновлению или работе административных функций.
Поскольку CVE-2026-119977 уже включена в каталог CISA KEV, не откладывайте обновление сайтов, доступных из интернета.
Что проверить после обновления
После установки исправлений рекомендуется:
- Убедиться, что версия WordPress соответствует исправленному выпуску.
- Проверить содержимое каталога
wp-content/upgrade/и удалить оставшиеся временные файлы, если они больше не нужны. - Изучить журналы веб-сервера на предмет подозрительных обращений к временным каталогам обновления.
- Проверить сайт на наличие неизвестных PHP-файлов и изменений в существующих файлах ядра.
- Если сайт обновлялся в период, когда уязвимость оставалась неисправленной, проверить его на признаки компрометации.
Установка исправленной версии закрывает уязвимый сценарий обновления, но не удаляет возможные последствия атаки, которая могла произойти ранее.
