
Docker lab demonstrando o CVE-2026-17532, um XSS refletido não autenticado no Seraphinite Accelerator que encadeia para RCE via sessão de administrador, com script de exploit e web shell.
Um laboratório Docker para CVE-2026-17532, um XSS refletido não autenticado no plugin WordPress Seraphinite Accelerator que encadeia em execução remota de código no momento em que um administrador conectado abre um único link malicioso.
Artigo completo: BLOG
python3 ou php no host (apenas para construir a URL do exploit - exploit.sh usa o que estiver disponível)docker compose down -v # limpa dados antigos
docker compose up -d
docker compose logs -f wpcli
Aguarde LAB READY, depois pressione Ctrl-C. O WordPress agora está em com o plugin vulnerável ativo e o cache de páginas habilitado.
http://127.0.0.1:8080O contêiner wpcli é um instalador de uso único; ele sai após a configuração. Isso é normal.
Faça login como admin em http://127.0.0.1:8080/wp-admin
adminadmin-lab-pwConstrua a URL maliciosa e abra-a no mesmo navegador:
./exploit.sh # ou: ./exploit.sh http://127.0.0.1:8080
A página trava por ~5 segundos - isso é um sleep( 5 ) literal no ramo selfTest do plugin, não um laboratório quebrado. Então o XSS é executado, grava o web shell usando sua sessão de admin e registra a URL do shell no console do navegador.
http://127.0.0.1:8080/wp-content/plugins/hello.php?c=id
Ou abra sem ?c= para uma caixa de entrada interativa.
xss.js é executado na sessão do admin e na mesma origem, então ele pode:
GET wp-admin/plugin-editor.php e extrair o nonce único do editor do HTML.POST para admin-ajax.php com action=edit-theme-plugin-file, gravando um web shell PHP em hello.php.Por que hello.php? Porque ele está inativo. Quando você edita um plugin ativo e a alteração causaria erro fatal no site, o WordPress detecta o erro e reverte o arquivo. Plugins inativos ignoram essa verificação, então o shell é gravado e permanece gravado. Qualquer arquivo de plugin inativo gravável funciona; hello.php apenas acompanha o WordPress por padrão.
Todo o script é embutido na URL maliciosa, então nenhum servidor atacante é necessário.
docker compose down -v