
Proof-of-concept di exploit in Python per CVE-2026-92592, una RCE autenticata in Craft CMS che sfrutta i cookie firmati license-shun per eseguire payload Twig ed eseguire comandi.
Proof of concept per CVE-2026-92592 / GHSA-5r92-75j8-c534. Craft firma dati controllati dall'attaccante nel cookie autenticato license-shun con la stessa chiave e lo stesso formato usati per i redirect di login firmati. Riusando quel valore firmato come redirect si induce Craft a renderizzarlo come Twig non sandboxed, consentendo l'esecuzione di comandi tramite il comportamento map('system') di Twig.
Craft CMS dalla 4.8.0 alla 4.18.5 e dalla 5.0.0 alla 5.10.12 sono interessate. Aggiornare alla 4.18.6 o alla 5.10.13 o successive. Craft 5.9.8 è interessata.
Usare questo strumento solo contro sistemi di propria proprietà o per i quali si è autorizzati a eseguire test.
requestscookieValidationKey e la securityKey di Craftsystem(), sh e base64 disponibili sul targetCreare un ambiente isolato e installare il pacchetto Python:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install requests
Eseguire l'exploit con l'URL del target, il nome utente, la password e il comando:
python3 craftcms_rce.py \
-t https://craft.example \
-u author \
-p 'password' \
'id'
Le password fornite da riga di comando possono essere visibili nella cronologia della shell e nell'elenco dei processi. Usare credenziali di test temporanee. Passare --proxy per un proxy HTTP di debug e --insecure solo quando il target utilizza un certificato che non può essere verificato.
Lo stdout e lo stderr del comando vengono combinati e stampati su stdout. Eseguire python3 craftcms_rce.py --help per tutte le opzioni.
app/set-license-shun-cookie e cattura il valore del cookie firmato da Craft.redirect in un'altra richiesta di login.