CVE-2026-122041 — ThemeHigh Checkout Field Editor Pro ≤3.8.0 unauth attachment delete (File Upload), fix 3.8.1
Суть
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,versionUI: Плагины → карточка Pro ThemeHigh. Затем WooCommerce → Checkout Field Editor (или аналог пункта меню плагина): секции Classic и Blocks — есть ли тип File Upload на публичном checkout. Dependabot/мониторинг только free-slug дают ложный green.
Как исправить
- Staging → обновить Pro до ≥ 3.8.1 из кабинета ThemeHigh (zip / автообновление по активной лицензии). Канал wordpress.org для free не обновляет Pro.
- Smoke: checkout (classic и/или blocks), File Upload если используется, тестовый заказ, админ-список полей.
- Prod: бэкап БД+файлов (в т.ч.
uploads) → update → smoke. Если checkout сломался — откат предыдущим zip/бэкапом плагина + compensating (снять File Upload / deactivate) до повторного апдейта. - Массово: один лицензионный 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 и целостность заказов/товаров. Одного обновления после подтверждённой порчи мало.
Источники
- ThemeHigh product page (версия 3.8.1, 03.11.2026): https://www.themehigh.com/product/woocommerce-checkout-field-editor-pro/
- CVE-2026-122041 — номер текстом (NVD/EUVD в публикацию не ссылать); CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H (CNA Wordfence)