невзлом

К сведению · Craft CMS

CVE-2026-124427…430 — Craft CMS 5.x < 5.11.5 (GraphQL scope, CP RCE, registration PE); fix ≥5.11.5 / 5.12.x

· CVE-2026-124427, CVE-2026-124428, CVE-2026-124429, CVE-2026-124430

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

Суть

Пакет раскрытий EUVD 08.11.2026 (вендорские advisories пакета — 23.10.2026; смежные — 02.11.2026):

CVEТип (кратко)Нижняя границаУсловиеCVSS (EUVD v4)
CVE-2026-124427GraphQL authorization bypass — чтение вне схемы≥5.0.0, <5.11.2anon + публичная схема9.3
CVE-2026-124428Arbitrary file read из CP≥5.7.0, <5.11.2authenticated CP7.1
CVE-2026-124429PE через публичную регистрацию (reclaim deactivated non-admin)≥5.0.0, <5.11.2public registration, email verify off8.7
CVE-2026-124430RCE для non-admin CP user≥5.10.0, <5.11.2authenticated CP (not necessarily admin)8.7

Смежные официальные advisories того же окна: RCE, связанный с обработкой image transforms (patched 5.11.4); authenticated SQLi (patched 5.11.5). Четыре CVE EUVD закрыты уже в 5.11.2 (релиз 17.09.2026); пол 5.11.5 нужен из‑за смежных advisories. Детали эксплуатации и PoC не публикуем.

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

КомпонентУязвимо для действияЗакрытие
craftcms/cms 5.xлюбая < 5.11.5≥ 5.11.5, предпочтительно 5.12.0.1+

Не смешивать с 6.0.0-alpha.*. Смотреть constraint в composer.json / composer.lock.

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

  • CISA KEV — нет.
  • Подтверждённых атак в ленте / releases — нет.

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

composer show craftcms/cms
# сверить также версию в composer.lock на каждом стенде

В CP: Utilities → System Report (рус.: «Системный отчёт»). Нет пункта Utilities — смотреть lock / спросить админа. Закрыто при ≥ 5.11.5 (semver).

Дополнительно по поверхности: публичный GraphQL; users.allowPublicRegistration + требование подтверждения email; доступность CP из интернета; число не-админ пользователей CP.

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

  1. Staging: бэкап БД+файлов+.env. Пути обновления:
    • CP Utilities → Updates, если allowUpdates и allowAdminChanges позволяют;
    • иначе bump constraint (^5.11.5 / ^5.12.0, не pin на старую точную) → composer update craftcms/cms или php craft update craft → снова composer show / System Report.
  2. Миграции / project-config apply по runbook; сброс кэшей: Utilities → Caches или php craft clear-caches/all.
  3. Smoke: фронт, логин CP, критичные плагины, GraphQL-схемы, формы регистрации.
  4. Prod: тот же путь через pipeline. Docker/DDEV: обновить lock на CI/staging, пересобрать образ / composer install --no-dev по новому lock на все реплики; не composer update внутри prod-контейнера «на живую». Автопатчей у Craft нет: на prod часто allowAdminChanges=false — патч только через lock → install → php craft up.
  5. После перехода на 5.12.x: не включать public MCP без нужды; сверить GraphQL schemas/endpoints и plugin constraints.

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

Отдельного hotfix кроме обновления ядра нет. Compensating (неполная; для части сценариев <5.11.2 не закрывает поверхность полностью — полная мера только ядро ≥5.11.5):

  • отключить публичную регистрацию или включить проверку email;
  • сузить/отключить публичные GraphQL schemas; не держать лишние directives на недоверенном контенте;
  • ограничить доступ к CP (VPN / IP allowlist / отдельный hostname);
  • allowAdminChanges=false на prod — гигиена, не фикс CVE;
  • WAF как замену патчу не обещать.

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

IoC вендор не публиковал. Ориентир: неожиданные пользователи/прямые permissions; аномальный GraphQL traffic; странная активность low-priv CP; неожиданные файлы в webroot/storage. При подозрении: обновить ядро; ротация credentials/сессий; аудит плагинов и логов; одного обновления может быть мало.

Источники

  • CVE-2026-124427 … CVE-2026-124430 — номера текстом; CVSS EUVD v4
  • Актуальную сборку ядра берите штатным обновлением проекта (Utilities → Updates / Composer). Ссылки на security advisories, KB с примерами запросов и агрегаторы CVE в публикацию не ставим