
# Docker lab démontrant CVE-2026-17532, une XSS réfléchie non authentifiée dans Seraphinite Accelerator qui s'enchaîne vers une RCE via la session admin, avec script d'exploitation et web shell.
Un lab Docker pour CVE-2026-17532, une XSS réfléchie non authentifiée dans le plugin WordPress Seraphinite Accelerator qui enchaîne sur une exécution de code à distance dès qu'un administrateur connecté ouvre un lien spécialement conçu.
Article complet : BLOG
python3 ou php sur l'hôte (uniquement pour construire l'URL d'exploitation - exploit.sh utilise celui qui est présent)docker compose down -v # nettoie les anciennes données
docker compose up -d
docker compose logs -f wpcli
Attendez LAB READY, puis appuyez sur Ctrl-C. WordPress est maintenant à http://127.0.0.1:8080 avec le plugin vulnérable actif et la mise en cache des pages activée.
Le conteneur wpcli est un installateur à usage unique ; il se termine après la configuration. C'est normal.
Connectez-vous en tant qu'admin à http://127.0.0.1:8080/wp-admin
adminadmin-lab-pwConstruisez l'URL spécialement conçue et ouvrez-la dans le même navigateur :
./exploit.sh # ou : ./exploit.sh http://127.0.0.1:8080
La page se fige pendant ~5 secondes - c'est un sleep( 5 ) littéral dans la branche selfTest du plugin, pas un lab cassé. Ensuite, la XSS s'exécute, écrit le web shell en utilisant votre session admin, et journalise l'URL du shell dans la console du navigateur.
http://127.0.0.1:8080/wp-content/plugins/hello.php?c=id
Ou ouvrez-le sans ?c= pour une boîte de saisie interactive.
xss.js s'exécute dans la session de l'admin et sur la même origine, il peut donc :
GET wp-admin/plugin-editor.php et extraire le nonce d'édition à usage unique du HTML.POST vers admin-ajax.php avec action=edit-theme-plugin-file, écrivant un web shell PHP dans hello.php.Pourquoi hello.php ? Parce qu'il est inactif. Lorsque vous modifiez un plugin actif et que le changement ferait planter le site, WordPress détecte l'erreur et restaure le fichier. Les plugins inactifs contournent cette vérification, donc le shell est écrit et reste écrit. N'importe quel fichier de plugin inactif inscriptible fonctionne ; hello.php est simplement fourni par défaut avec WordPress.
Le script entier est intégré dans l'URL spécialement conçue, donc aucun serveur attaquant n'est nécessaire.
docker compose down -v