
Prova de conceito de exploit para CVE-2026-1357, um upload arbitrário de arquivos sem autenticação no plugin WPvivid Backup & Migration para WordPress, permitindo execução remota de código.
O plugin para WordPress Migration, Backup, Staging – WPvivid Backup & Migration é vulnerável a Upload Arbitrário de Arquivos Não Autenticado em versões até e incluindo a 0.9.123. Isso se deve ao tratamento inadequado de erros no processo de descriptografia RSA combinado com a falta de sanitização de caminhos ao gravar arquivos enviados. Quando o plugin falha ao descriptografar uma chave de sessão usando openssl_private_decrypt(), ele não encerra a execução e, em vez disso, passa o valor booleano false para a inicialização do cifrador AES da biblioteca phpseclib. A biblioteca trata esse valor false como uma string de bytes nulos, permitindo que um atacante criptografe uma carga maliciosa usando uma chave previsível de bytes nulos. Além disso, o plugin aceita nomes de arquivo da carga descriptografada sem sanitização, permitindo travessia de diretórios para escapar do diretório de backup protegido. Isso torna possível que atacantes não autenticados enviem arquivos PHP arbitrários para diretórios de acesso público e alcancem Execução Remota de Código por meio do parâmetro wpvivid_action=send_to_site.
https://nvd.nist.gov/vuln/detail/CVE-2026-1357
Organize sua pasta de projeto da seguinte forma:
.
├── docker-compose.yml
├── exploit.py
├── requirements.txt
├── vulnerable-plugin-folder/ # Área de preparação para o plugin
└── wp-content/ # Dados persistentes do WP (criados pelo Docker)
Como a vulnerabilidade foi corrigida em versões posteriores, você deve baixar e preparar manualmente a versão 0.9.123. Execute estes comandos a partir da raiz do seu projeto:
# Baixar a versão vulnerável
wget https://downloads.wordpress.org/plugin/wpvivid-backuprestore.0.9.123.zip
# Criar o diretório de preparação
mkdir vulnerable-plugin-folder
# Extrair e mover os arquivos para o lugar
unzip wpvivid-backuprestore.0.9.123.zip
mv wpvivid-backuprestore/* vulnerable-plugin-folder/
rm -rf wpvivid-backuprestore wpvivid-backuprestore.0.9.123.zip
docker-compose up -d
http://localhost:8080 e conclua a instalação./wp-admin).pip install -r requirements.txt
Execute o script contra o alvo do seu laboratório:
python3 exploit.py localhost:8080 --command "id"
Se for bem-sucedido, o script exibirá os resultados do comando (por exemplo, uid=33(www-data) gid=33(www-data)). Você também pode verificar a existência do shell no seu laboratório:
docker exec wpvivid-lab ls /var/www/html/wp-content/uploads/
Esta ferramenta é apenas para fins educacionais e pesquisa de segurança autorizada. O acesso não autorizado a sistemas de computador é ilegal.