
Preuve de concept en Python pour CVE-2026-92592, une RCE authentifiée dans Craft CMS qui exploite les cookies signés license-shun pour exécuter des charges utiles Twig et lancer des commandes.
Preuve de concept pour CVE-2026-92592 / GHSA-5r92-75j8-c534. Craft signe des données contrôlées par l'attaquant dans le cookie authentifié license-shun avec la même clé et le même format que ceux utilisés pour les redirections de connexion signées. La réutilisation de cette valeur signée comme redirect amène Craft à la rendre comme du Twig non sandboxé, permettant l'exécution de commandes via le comportement map('system') de Twig.
Craft CMS 4.8.0 à 4.18.5 et 5.0.0 à 5.10.12 sont affectés. Mettez à jour vers 4.18.6 ou 5.10.13 ou une version ultérieure. Craft 5.9.8 est affecté.
N'utilisez ceci que contre des systèmes que vous possédez ou êtes autorisé à tester.
requestscookieValidationKey et la securityKey de Craftsystem(), sh et base64 disponibles sur la cibleCréez un environnement isolé et installez le paquet Python :
python3 -m venv .venv
source .venv/bin/activate
python -m pip install requests
Lancez l'exploit avec l'URL cible, le nom d'utilisateur, le mot de passe et la commande :
python3 craftcms_rce.py \
-t https://craft.example \
-u author \
-p 'password' \
'id'
Les mots de passe en ligne de commande peuvent être visibles dans l'historique du shell et la liste des processus. Utilisez des identifiants de test temporaires. Passez --proxy pour un proxy de débogage HTTP et --insecure uniquement lorsque la cible utilise un certificat qui ne peut pas être vérifié.
La sortie standard et la sortie d'erreur de la commande sont combinées et affichées sur la sortie standard. Exécutez python3 craftcms_rce.py --help pour toutes les options.
app/set-license-shun-cookie et capture la valeur du cookie signé par Craft.redirect dans une autre requête de connexion.