невзлом

К сведению · ThemeHigh Checkout Field Editor Pro

CVE-2026-122041 — ThemeHigh Checkout Field Editor Pro ≤3.8.0 unauth attachment delete (File Upload), fix 3.8.1

· CVE-2026-122041

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

Суть

Missing Authorization при удалении загруженного на checkout файла: нет проверки capability/ownership вложения. CNA Wordfence (лента NVD/EUVD): versions through 3.8.0; PR:N — учётная запись на сайте не нужна; пререквизит сценария — на публичном checkout настроено поле File Upload. Итог — unauth удаление произвольных attachment медиатеки (I:H/A:H). CVSS 9.1. Имена AJAX-action и параметров запроса — вне публикации.

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

КомпонентУязвимо (CNA)Закрытие
Checkout Field Editor for WooCommerce (Pro)≤ 3.8.0≥ 3.8.1
Free Checkout Field Editor (wordpress.org, 2.x)этот CVE не покрывает—

Pro slug: woocommerce-checkout-field-editor-pro (лицензионный канал ThemeHigh). Free slug: woo-checkout-field-editor-pro — другая линейка версий. Вендор на product page: 600,000+ Active Installations, Current Version 3.8.1, Latest Update 03.11.2026. Wordfence remediation: Patched Version 3.8.1.

Вторично (не product page / не summary CVE): в копиях changelog 3.8.1 также упоминают stored XSS в checkout-полях того же релиза — в этом выпуске фокус на CVE-2026-122041.

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

  • CISA KEV — нет.
  • Подтверждённых атак в ленте/карточке вендора — нет.
  • Write-up / trac / threat-intel URL / имена исследователей — не ссылать.

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

# Парк: Pro vs free
wp plugin list --fields=name,status,version | grep -iE 'checkout-field|thwcfe|themehigh'

wp plugin get woocommerce-checkout-field-editor-pro --fields=name,status,version
# закрыто патчем: version ≥ 3.8.1; митигация: status ≠ active
# Error = плагин не установлен (нормально при исключении ложного совпадения)

wp plugin get woo-checkout-field-editor-pro --fields=name,status,version

UI: Плагины → карточка Pro ThemeHigh. Затем WooCommerce → Checkout Field Editor (или аналог пункта меню плагина): секции Classic и Blocks — есть ли тип File Upload на публичном checkout. Dependabot/мониторинг только free-slug дают ложный green.

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

  1. Staging → обновить Pro до ≥ 3.8.1 из кабинета ThemeHigh (zip / автообновление по активной лицензии). Канал wordpress.org для free не обновляет Pro.
  2. Smoke: checkout (classic и/или blocks), File Upload если используется, тестовый заказ, админ-список полей.
  3. Prod: бэкап БД+файлов (в т.ч. uploads) → update → smoke. Если checkout сломался — откат предыдущим zip/бэкапом плагина + compensating (снять File Upload / deactivate) до повторного апдейта.
  4. Массово: один лицензионный zip → wp plugin install ./themehigh-pro-3.8.1.zip --force (или выкат артефакта в CI); на каждом инстансе — лицензия ThemeHigh. Composer/Bedrock/образ с зашитым плагином: обновить private package / пересобрать слой, free-base image Pro не поднимает. Критерий done — Pro ≥3.8.1 или deactivate / снят File Upload + тикет; в инвентаре отдельно отмечать наличие File Upload на публичном checkout.

Автообновление с wordpress.org Pro не закрывает. Не считать парк закрытым по факту обновления только free 2.x.

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

Отдельного официального hotfix кроме 3.8.1 нет. Compensating: убрать/отключить поле File Upload на checkout (classic и blocks); при необходимости deactivate Pro (проверить, что checkout без него принимает заказ). WAF как замену патчу не обещать. Неофициальные сборки — запрещены стандартом.

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

IoC вендор/CNA не публиковали. При массовой пропаже attachment без действий админов: обновить Pro; восстановить медиа из бэкапа; проверить пользователей с elevated roles и целостность заказов/товаров. Одного обновления после подтверждённой порчи мало.

Источники