невзлом

Срочно · WordPress

WordPress CVE-2026-119977 — CISA KEV 03.11.2026, патч и triage

· CVE-2026-119977

Это обновление к выпуску: WordPress 7.1.4 — RCE в окне полного обновления ядра (CVE-2026-119977)

← Простая версия для всех

Суть

Гонка TOCTOU при полном (full-package) обновлении ядра: на короткое время появляются веб-доступные временные пути установщика; без аутентификации возможна RCE в этом окне. Отдельного действия посетителя не нужно.

CVSS 3.1 — 8.1 High (CNA Wordfence; в анонсе wordpress.org CVE и CVSS нет). CISA KEV — да, dateAdded 2026-11-03, dueDate 2026-11-06, knownRansomwareCampaignUse Unknown, forensic triage required — Yes (BOD 26-04).

Затронуто и исправлено

По HelpHub version-7-1-4 (28.10.2026). Активно поддерживается только последняя версия; бэкпорты — «as a courtesy».

ВеткаИсправлено с
7.17.1.4
7.07.0.8
6.96.9.11
6.86.8.12
6.76.7.11
6.66.6.11
6.56.5.14
6.46.4.14
6.36.3.14
6.26.2.15
6.16.1.16
6.06.0.18
5.95.9.20
5.85.8.19
5.75.7.21
5.65.6.23
5.55.5.24
5.45.4.25
5.35.3.27
5.25.2.30
5.15.1.28
5.05.0.31
4.94.9.35
4.84.8.34
4.74.7.39

Пример: 7.1.3 — уязвима, 7.1.4 — исправлена.

  • 4.6 и раньше: security-фиксов нет — только переход на поддерживаемую ветку.
  • Не все 22 пункта 7.1.4 затрагивают каждую старую ветку одинаково; для этой RCE ориентир по вторичным — с 4.7. Ставьте бэкпорт своей ветки целиком.

Эксплуатация

  • CISA alert 03.11.2026: одна запись в KEV — CVE-2026-119977, «based on evidence of active exploitation».
  • Описание KEV (CSV): unauthenticated RCE during the upgrade window due to predictable, web-accessible staging paths.
  • WordPress в анонсе 28.10 про активную эксплуатацию не писал; просит обновить сразу.
  • Вторично Wordfence/THN (без URL в публикацию): массовые попытки после патча; число успешных компрометаций в тех материалах не подтверждено.
  • Публичный PoC: редакция наличие/отсутствие не утверждает; ссылок на PoC нет.

Как проверить

Команды — из корня сайта (где wp-config.php), либо с --path=/path/to/wp.

wp core version
wp core verify-checksums
  • Админка: «Консоль → Обновления», «Здоровье сайта».
  • Background security-updates ядра по умолчанию обычно включены (анонс 28.10.2026); если не отключали — всё равно сверьте фактическую версию. Отключено константами AUTOMATIC_UPDATER_DISABLED / WP_AUTO_UPDATE_CORE или панелью хостинга — обновляйте вручную по таблице.
  • Пользователи с administrator; свежие записи в wp_users / wp_usermeta.
  • Посторонние PHP вне ожидаемых путей плагинов/темы; неожиданные правки wp-config.php, must-use plugins.
  • Журналы веб-сервера вокруг окон полного обновления ядра (без публикации конкретных путей атаки в открытых каналах).
  • Composer/Bedrock и пачка сайтов: версию поднимать в манифесте/образе и выкатывать; инвентаризация wp core version по всем инстансам до/после.

Как исправить

Копии — вне webroot. Команды — из корня сайта (или --path).

( umask 077
  wp db export ~/wp-db-$(date +%F).sql
  tar -czf ~/wp-files-$(date +%F).tar.gz . )

Ставьте патч своей мажорной линии из таблицы. Не указывайте 7.1.4, если сейчас не ветка 7.1 — --version поставит названный релиз и уведёт на другой major.

# подставьте патч своей ветки из таблицы (7.1.4 / 6.8.12 / …):
wp core update --version=<патч-из-таблицы>
wp core update-db
wp core version
wp core verify-checksums

⚠️ Переход на новую основную версию (например с 6.x на 7.1) — отдельное решение: совместимость темы/плагинов, тестовый стенд, откат из копии. Для закрытия этой CVE достаточно бэкпорта своей ветки.

Если обновление оборвалось / белый экран: восстановить из копии вне webroot, не «добивать» ядро с форумов; затем повторить обновление.

Подводные камни: закреплённый образ Docker/том — поднять тег или пересобрать образ (или том с ядром); wp core update в эфемерном контейнере без выката образа патчем не считается, после redeploy снова wp core version. Хостинг-«автообновление» без смены version.php; кэш opcode/CDN; мультисайт — обновить сеть целиком.

Если обновить нельзя

Официальных mitigations в анонсе WordPress нет. Цель — попасть на исправляющую версию не через уязвимый веб-установщик: WP-CLI / панель хостинга / замена файлов ядра из официального пакета вне окна веб-upgrader. Временно до этого: закрыть прямой веб-доступ к временным каталогам обновления на уровне веб-сервера/WAF (правила — у хостера). Это не замена патча. Для 4.6− — переход на поддерживаемую ветку.

Признаки взлома и что делать

Индикаторы общего плана (не IOC кампании от CISA): неизвестные администраторы; PHP в uploads и вне плагинов; изменённые checksums ядра; неожиданные cron/must-use. Порядок: изолировать (если подтверждено) → сохранить доказательства → чистая установка/восстановление из проверенной копии после патча → смена всех секретов и паролей → аудит плагинов. Одного wp core update после компрометации недостаточно. CISA для федералов требует forensic triage по BOD 26-04; для коммерции — та же логика «проверить, не заходили ли до патча».

Источники