
Python proof-of-concept эксплойт для CVE-2026-92592 — аутентифицированного RCE в Craft CMS, который использует подписанные cookie license-shun для выполнения Twig-пейлоадов и запуска команд.
Proof of concept для CVE-2026-92592 / GHSA-5r92-75j8-c534. Craft подписывает контролируемые злоумышленником данные в аутентифицированном cookie license-shun тем же ключом и в том же формате, которые используются для подписанных редиректов при входе. Повторное использование этого подписанного значения в качестве redirect заставляет Craft отрендерить его как Twig без песочницы, что позволяет выполнить команды через поведение map('system') в Twig.
Уязвимы Craft CMS с 4.8.0 по 4.18.5 и с 5.0.0 по 5.10.12. Обновитесь до 4.18.6 или 5.10.13 либо более поздней версии. Craft 5.9.8 уязвим.
Используйте это только против систем, которыми вы владеете или которые вам разрешено тестировать.
requestscookieValidationKey и securityKey в Craftsystem(), sh и base64 на целевой системеСоздайте изолированное окружение и установите пакет Python:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install requests
Запустите эксплойт с URL цели, именем пользователя, паролем и командой:
python3 craftcms_rce.py \
-t https://craft.example \
-u author \
-p 'password' \
'id'
Пароли, переданные в командной строке, могут быть видны в истории оболочки и списке процессов. Используйте временные тестовые учётные данные. Передайте --proxy для HTTP-прокси отладки и --insecure только если целевая система использует сертификат, который невозможно проверить.
stdout и stderr команды объединяются и выводятся в stdout. Запустите python3 craftcms_rce.py --help, чтобы увидеть все параметры.
app/set-license-shun-cookie и перехватывает подписанное значение cookie от Craft.redirect в другом запросе на вход.