WordPress, 5 сентября 2026: RCE без логина в Hummingbird и JWT-обход в MStore API

5 сентября 2026 года в NVD вышли шесть карточек high и critical по плагинам WordPress. Все шесть от Wordfence как CNA. Пять без логина, одна с ролью subscriber. Это не та выборка, что в дайджесте 4 сентября с Divi Ajax Filter и ACPT.

Самая широкая поверхность: Hummingbird (slug hummingbird-performance), удалённый код через debug-лог кеша страниц. Патч Wordfence: 3.21.1. API wordpress.org на 5 сентября 2026 уже отдаёт 3.21.2. Рядом JWT-подделка в MStore API (slug mstore-api), патч Wordfence 4.21.1, в каталоге 4.21.3. Hook injection в Post Grid / ComboBlocks: Wordfence пишет патч 2.3.33, каталог на ту же дату всё ещё отдаёт 2.3.24. NIST своей оценки ни по одной из шести записей на 5 сентября 2026 не выставил.

Коротко: шесть карточек 5 сентября

  • CVE-2026-83627, Hummingbird (slug hummingbird-performance) <= 3.21.0. RCE без логина через cookie-имя в wp-content/wphb-logs/page-caching-log.php. Нужны Page Caching и Debug Log (не дефолт). Wordfence: CVSS 3.1 9.8 CRITICAL. Патч Wordfence: 3.21.1.
  • CVE-2026-13447, MStore API (slug mstore-api) <= 4.20.0. Обход входа без логина: JWT Firebase Phone Auth без проверки подписи. Wordfence: CVSS 3.1 9.8 CRITICAL. Патч Wordfence: 4.21.1.
  • CVE-2024-11080, Post Grid / ComboBlocks (slug post-grid) 2.2.85–2.3.32. Hook injection без логина в form-wrap. Wordfence: CVSS 3.1 9.8 CRITICAL. Патч Wordfence: 2.3.33. В каталоге wordpress.org на 5 сентября 2026 текущая 2.3.24.
  • CVE-2026-10196, Mail Mint (slug mail-mint) <= 1.31.0. PHP Object Injection без логина в handle_form_submission, есть POP-цепочка. Частичный фикс 1.23.1. Wordfence: CVSS 3.1 9.8 CRITICAL. Патч Wordfence: 1.31.1.
  • CVE-2026-19887, Welcart e-Commerce (slug usc-e-shop) <= 2.12.1. PHP Object Injection через callback Telecom EDY, удаление файлов (в том числе wp-config.php) после печати счёта администратором. Wordfence: CVSS 3.1 8.8 HIGH, UI:R. Патч Wordfence: 2.12.2.
  • CVE-2026-81543, Abandoned Cart Pro for WooCommerce (slug woocommerce-abandon-cart-pro) <= 10.7.1. Subscriber меняет SMTP и перехватывает auto-login администратора. Wordfence: CVSS 3.1 8.8 HIGH, PR:L. Патч Wordfence: 10.7.2. Плагин коммерческий, в каталоге wordpress.org его нет.

Почему это важно на практике

Пять из шести без логина. Hummingbird стоит на кеше и Core Web Vitals: API wordpress.org на 5 сентября 2026 показывает около 70 000 активных установок. Условие узкое (Page Caching плюс Debug Log), но сам debug-лог пишется в исполняемый PHP в wp-content. Post Grid: около 30 000 установок, и на карточке Wordfence 5 сентября 2026 отдельной строкой: за последние 24 часа заблокировано 4 266 атак на эту дыру. Это не «теоретический CWE», а живой шум. MStore API бьёт в учётку: поддельный JWT даёт вход в существующего пользователя или создание новой учётки. Mail Mint принимает форму с фронта. Welcart требует ещё действие администратора (печать счёта). Abandoned Cart Pro уже требует subscriber, но auto-login у плагина по умолчанию включён.

Оценки на 5 сентября 2026: балл везде поставил CNA Wordfence. Статус NVD: Received, «NVD assessment not yet provided». Для обновления балл NIST не нужен: есть slug, уязвимая версия и (где он есть) патч Wordfence. Публикация карточек Wordfence: 4 сентября 2026, в NVD они появились 5 сентября 2026.

Приоритет простой. Сначала Hummingbird ниже 3.21.1, если включены Page Caching и Debug Log: гость пишет PHP в лог. Затем Post Grid в диапазоне 2.2.85–2.3.32: каталог всё ещё отдаёт 2.3.24, то есть «последняя с wordpress.org» эту CVE не закрывает. Потом MStore API ниже 4.21.1 и Mail Mint ниже 1.31.1. Welcart закрывается 2.12.2. Abandoned Cart Pro обновляют из кабинета Tyche / WooCommerce, не через wp plugin update из каталога.

CVE-2026-83627: Hummingbird, RCE через debug-лог кеша

Карточка NVD опубликована 5 сентября 2026, 06:17 UTC, источник Wordfence, статус Received. Описание: во всех версиях по 3.21.0 включительно функция log_msg() в core/modules/class-page-cache.php пишет лог в wp-content/wphb-logs/page-caching-log.php. Файл доступен по HTTP. Защитный заголовок <?php die(); ?> ставится только если class_exists( 'Filesystem' ) нашёл класс. Класс живёт в пространстве имён Hummingbird\Core\Filesystem, строка без пространства имён его не находит. Если лог создали во фронтовом запросе, заголовка нет. get_cookies() затем пишет в этот файл сырое имя любой cookie с префиксом wphb_cache_ без очистки. Гость одним анонимным запросом записывает PHP и открывает файл по URL. CWE-94. Оценка Wordfence: CVSS 3.1 9.8, вектор AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Исследователь: Kuba. Публикация Wordfence: 4 сентября 2026. Вендор в карточке NVD: wpmudev.

Условие Wordfence и NVD одно: администратор включил Page Caching и опцию Debug Log (не дефолт), и лог создан во фронтовом запросе. Это состояние Wordfence прямо связывает с действием «Clear logs», сбросом кеша или ежедневным cron ротации логов, который может снять защитный заголовок с уже существующего файла. Без Debug Log карточка RCE не обещает. Патч Wordfence: Update to version 3.21.1. В references есть changeset плагина и сравнение тегов 3.20.0 и 3.21.2. API wordpress.org на 5 сентября 2026 отдаёт текущую 3.21.2 (обновление 1 сентября 2026). Для этой CVE достаточно не ниже 3.21.1. Не путать Hummingbird Performance (slug hummingbird-performance) с другими кеш-плагинами: путь лога wphb-logs относится только к нему.

CVE-2026-13447: MStore API, JWT Firebase без подписи

NVD: 5 сентября 2026, 06:17 UTC, Wordfence, Received. В версиях по 4.20.0 включительно FirebasePhoneAuthHelper::verify_id_token() разбирает claims JWT (alg, kid, aud, iss) и не вызывает openssl_verify() и любой аналог проверки подписи по сертификатам Google. Гость подписывает Firebase Phone Auth JWT своей RSA-парой и выдаёт себя за любой номер телефона: вход в существующую учётку WordPress или создание новой. CWE-287. Оценка Wordfence: CVSS 3.1 9.8, тот же вектор с PR:N. Исследователь: t4g0. Публикация Wordfence: 4 сентября 2026. Вендор: inspireui. Slug: mstore-api.

Патч Wordfence: 4.21.1. В references NVD changeset нет, ориентир по исправленной версии: карточка Wordfence. API wordpress.org на 5 сентября 2026 отдаёт 4.21.3 (обновление 20 августа 2026), около 3 000 установок. К этой CVE достаточно не ниже 4.21.1. Плагин нужен сайтам с нативным приложением InspireUI / Flutter поверх WooCommerce: без MStore API карточка к сайту не относится.

CVE-2024-11080: Post Grid, hook injection без логина

NVD: 5 сентября 2026, 09:16 UTC, Wordfence, Received. Номер CVE 2024-й, в NVD карточка появилась 5 сентября 2026. Текстовое описание NVD и Wordfence говорит о версиях 2.2.32–2.3.1 и файле ~/includes/blocks/form-wrap/function.php. Таблица Wordfence и блок Affected Products в NVD дают другой диапазон: 2.2.85–2.3.32. Для проверки версии я беру таблицу Wordfence, не свободный абзац. Суть: гость вызывает действия через хуки WordPress, если в самой функции нет других ограничений. CWE-94. Оценка Wordfence: CVSS 3.1 9.8. Исследователь: Chloe Chamberland (Wordfence). Публикация Wordfence: 4 сентября 2026. Вендор: pickplugins. Slug: post-grid.

Патч Wordfence: 2.3.33. Changeset в references NVD нет. API wordpress.org на 5 сентября 2026 отдаёт текущую 2.3.24 (обновление 19 июля 2026), около 30 000 установок. 2.3.24 входит в диапазон 2.2.85–2.3.32. wp plugin update post-grid из каталога на эту дату 2.3.33 не подтянет. На карточке Wordfence 5 сентября 2026: за последние 24 часа заблокировано 4 266 атак на эту уязвимость. Это снимок карточки, не доказательство, что конкретный сайт уже стучали. Не путать Post Grid / ComboBlocks (slug post-grid) с другими «post grid» в каталоге: проверяйте slug, не название в меню.

CVE-2026-10196: Mail Mint, unserialize на публичной форме

NVD: 5 сентября 2026, 12:16 UTC, Wordfence, Received. Во всех версиях по 1.31.0 включительно handle_form_submission десериализует недоверенный ввод. Гость внедряет PHP-объект. В advisory отдельно: есть POP-цепочка, через неё выполняется код на сервере. Частичный патч: 1.23.1. CWE-502. Оценка Wordfence: CVSS 3.1 9.8. Исследователь: maru. Публикация Wordfence: 4 сентября 2026. Вендор: getwpfunnels. Slug: mail-mint.

Патч Wordfence: 1.31.1. В references NVD два changeset: 3545065 и 3675453. API wordpress.org на 5 сентября 2026 отдаёт 1.31.1 (обновление 1 сентября 2026), около 4 000 установок. Версии 1.23.1–1.31.0 после частичного фикса всё ещё в диапазоне Wordfence. Цель: не ниже 1.31.1.

CVE-2026-19887: Welcart, unserialize в callback EDY

NVD: 5 сентября 2026, 07:17 UTC, Wordfence, Received. Во всех версиях по 2.12.1 включительно гость на публичном checkout записывает произвольные пары reserve в мета заказа, затем вызывает callback Telecom EDY (usces_action_acting_transaction) с параметром option и заставляет unserialize эти данные. Подписи провайдера, проверки адреса, идентичности транзакции и владельца нет. POP-цепочка есть в TCPDF, который поставляется с самим плагином. Через неё удаляют произвольные файлы, включая wp-config.php. Следующий шаг в advisory: повторная установка WordPress на базу, которой управляет атакующий. Срабатывание удаления файлов Wordfence ставит в зависимость от печати счёта администратором. CWE-502. Оценка Wordfence: CVSS 3.1 8.8 HIGH, вектор AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H. Исследователь: daroo. Публикация Wordfence: 4 сентября 2026. Вендор: uscnanbu. Slug: usc-e-shop.

Патч Wordfence: 2.12.2. В references есть changeset тегов 2.12.1 → 2.12.2. API wordpress.org на 5 сентября 2026 отдаёт 2.12.2 (обновление 31 августа 2026), около 10 000 установок. Без печати счёта карточка удаление wp-config.php не обещает, но unserialize на callback от этого не исчезает: обновляют до 2.12.2, а не «просто не печатают invoice».

CVE-2026-81543: Abandoned Cart Pro, SMTP и auto-login

NVD: 5 сентября 2026, 08:16 UTC, Wordfence, Received. Во всех версиях по 10.7.1 включительно нет проверки прав и nonce на AJAX-действиях wcap_save_connector_settings, wcap_send_manual_email, wcap_abandoned_cart_info, wcap_change_manual_email_data. Subscriber и выше меняет SMTP-коннектор, гоняет письма восстановления администратора через свой сервер и перехватывает auto-login ссылки. Условие Wordfence: auto-login плагина включён, это конфигурация по умолчанию. CWE-269. Оценка Wordfence: CVSS 3.1 8.8 HIGH, вектор AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Исследователь: d.v4n_s3c. Публикация Wordfence: 4 сентября 2026. Вендор: Tyche Softwares. Slug в карточке Wordfence: woocommerce-abandon-cart-pro.

Патч Wordfence: 10.7.2. В каталоге wordpress.org этого slug нет: пакет с страницы продукта WooCommerce. wp plugin update из wordpress.org его не подтянет. Обновляют из кабинета вендора. Не путать с бесплатным Abandoned Cart Recovery от тех же Tyche: у этой CVE slug Pro.

Что проверить WP-CLI

Команды для сервера, где есть WP-CLI, из каталога сайта или с --path=. Перед обновлением: копия файлов и базы. Четыре slug из каталога wordpress.org обновляются оттуда. Post Grid из каталога на 5 сентября 2026 патч 2.3.33 не отдаёт. Abandoned Cart Pro из каталога не ставится.

Есть ли эти slug и какие версии:

wp plugin list --fields=name,title,status,version | grep -Ei 'mstore-api|hummingbird-performance|post-grid|mail-mint|usc-e-shop|woocommerce-abandon-cart|mstore|hummingbird|combo.?blocks|mail mint|welcart|abandoned cart'

Ориентиры по источникам, не по догадке:

  • hummingbird-performance: всё <= 3.21.0 уязвимо, цель Wordfence 3.21.1 (в каталоге 5.09.2026 уже 3.21.2);
  • mstore-api: всё <= 4.20.0 уязвимо, цель Wordfence 4.21.1 (в каталоге 4.21.3);
  • post-grid: 2.2.85–2.3.32 уязвимо, цель Wordfence 2.3.33, текущая в каталоге 2.3.24;
  • mail-mint: всё <= 1.31.0 уязвимо, цель Wordfence 1.31.1;
  • usc-e-shop: всё <= 2.12.1 уязвимо, цель Wordfence 2.12.2;
  • woocommerce-abandon-cart-pro: всё <= 10.7.1 уязвимо, цель Wordfence 10.7.2, обновление не из wordpress.org.

Четыре пакета, которые каталог уже отдаёт с патчем (или новее):

wp plugin update mstore-api hummingbird-performance mail-mint usc-e-shop

Команда меняет файлы плагинов. Сначала копия. Не добавляйте сюда post-grid: на 5 сентября 2026 wordpress.org отдаёт 2.3.24, это всё ещё диапазон Wordfence. Не добавляйте Abandoned Cart Pro: его нет в каталоге, обновление из кабинета вендора затрёт чужой slug, если подставить имя наугад.

Версии после обновления:

wp plugin get hummingbird-performance --field=version
wp plugin get mstore-api --field=version
wp plugin get post-grid --field=version
wp plugin get mail-mint --field=version
wp plugin get usc-e-shop --field=version

Ожидаемый результат: Hummingbird не ниже 3.21.1, MStore API не ниже 4.21.1, Mail Mint не ниже 1.31.1, Welcart не ниже 2.12.2. Для Post Grid строка 2.3.24 (и любая до 2.3.32 включительно) по таблице Wordfence ещё уязвима. Если grep ничего не показал по конкретному slug, эта CVE к сайту не относится.

Пользователи, лог Hummingbird и uploads

Смотреть пользователей стоит из-за MStore API (вход и создание учёток по поддельному JWT) и Abandoned Cart Pro (перехват auto-login администратора). Команды только читают списки:

wp option get users_can_register
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered,roles
wp user list --fields=ID,user_login,user_email,user_registered,roles --orderby=registered --order=DESC --format=table

Ищите почту «мимо» организации, дату регистрации после включения уязвимой версии, лишнюю роль administrator. Пароли через WP-CLI не печатайте. Если стоял MStore API ниже 4.21.1, после 4.21.1 сменить пароли администраторов: advisory как раз про вход в существующую учётку. Если стоял Abandoned Cart Pro ниже 10.7.2 с auto-login по умолчанию, проверить SMTP-коннектор плагина в админке (не тот ли хост, что «свой») и сессии администраторов.

У Hummingbird advisory называет путь лога прямо. Команда только смотрит, есть ли каталог и PHP. Не открывайте page-caching-log.php в браузере «на всякий случай»: при снятом заголовке die() это исполнение. Не подставляйте cookie с префиксом wphb_cache_ как тест.

ls -la wp-content/wphb-logs/ 2>/dev/null
find wp-content/wphb-logs -type f \( -iname '*.php' -o -iname '*.phtml' \) 2>/dev/null

Пустой вывод значит, что каталога нет или Debug Log его не создал. Непустой PHP в wphb-logs на версии <= 3.21.0: сначала копия файла, потом разбор даты и access-лога, не сразу rm. После обновления до 3.21.1+ Debug Log на рабочем сайте лучше выключить, если он не нужен для отладки.

Прямой file upload в этой шестёрке нет, но Mail Mint и Hummingbird дают RCE, Welcart умеет удалить wp-config.php. Имеет смысл пройтись по PHP в uploads и проверить, что файл конфигурации на месте. Команды ничего не удаляют. Запускайте из корня сайта.

test -f wp-config.php && echo wp-config.php_ok
find wp-content/uploads -type f \( -iname '*.php' -o -iname '*.phtml' -o -iname '*.phar' \) 2>/dev/null | head

Непустой PHP в uploads это повод смотреть дату, владельца и access-лог, а не сразу rm без копии. Отсутствие wp-config.php после Welcart ниже 2.12.2: не ставить WordPress заново «чтобы заработало», пока не ясно, кто создал заявку и какой callback EDY приходил.

Маркеры в access-логе nginx (путь к логу свой). Это не доказательство взлома, а способ понять, стучались ли. Рабочий payload в лог не нужен: достаточно путей и префиксов из advisory.

sudo grep -Ei 'wphb-logs|page-caching-log|mstore-api|wcap_save_connector|usc-e-shop|mail-mint|post-grid' /var/log/nginx/access.log | tail -n 200

Где обычно ломается реакция

  • Считают Hummingbird безопасным, потому что Debug Log «выключен в интерфейсе». Advisory отдельно пишет про cron ротации, который снимает заголовок с уже созданного лога. Смотрите каталог wp-content/wphb-logs/, не только галочку.
  • Открывают page-caching-log.php в браузере как «проверку». На уязвимой версии это исполнение, не чтение.
  • Обновляют Post Grid из wordpress.org и считают CVE закрытой. На 5 сентября 2026 каталог отдаёт 2.3.24, патч Wordfence 2.3.33.
  • Путают описание CVE-2024-11080 (2.2.32–2.3.1) с таблицей Wordfence (2.2.85–2.3.32). Для проверки версии берите таблицу.
  • Путают Abandoned Cart Pro с бесплатным Abandoned Cart. Нужен slug woocommerce-abandon-cart-pro и кабинет вендора.
  • Оставляют Welcart на 2.12.1, потому что «мы не печатаем invoice». UI:R снижает CVSS, unserialize на callback от этого не исчезает.
  • Ждут оценку NIST. Для обновления её не нужно: CNA, slug и версия уже есть.

Вывод

5 сентября 2026 NVD разложил шесть плагинных CVE: четыре critical 9.8 и два high 8.8. Пять без логина. Самая широкая пара с патчем в каталоге: RCE в Hummingbird (3.21.1, в wordpress.org уже 3.21.2) и JWT-обход в MStore API (4.21.1). Самый неприятный хвост: Post Grid, где Wordfence пишет 2.3.33, а каталог на 5 сентября всё ещё отдаёт уязвимую 2.3.24, плюс счётчик атак на карточке. Mail Mint закрывается 1.31.1, Welcart 2.12.2, Abandoned Cart Pro 10.7.2 из кабинета вендора.

Рабочий минимум: сверить шесть slug, обновить четыре пакета из wordpress.org, Post Grid не считать закрытым на 2.3.24, Abandoned Cart Pro обновить у вендора. Затем администраторы, SMTP Pro, каталог wphb-logs и наличие wp-config.php. Эксплойт в статье не нужен: версия, лишний administrator и PHP в логе кеша говорят достаточно.

Источники


Комментарии загружаются…