
Proof-of-concept exploit per CVE-2026-1357, un upload arbitrario di file non autenticato nel plugin WPvivid Backup & Migration per WordPress, che consente l'esecuzione remota di codice.
Il plugin per WordPress Migration, Backup, Staging – WPvivid Backup & Migration è vulnerabile al caricamento arbitrario di file non autenticato nelle versioni fino alla 0.9.123 inclusa. Ciò è dovuto a una gestione impropria degli errori nel processo di decrittazione RSA combinata con una mancanza di sanitizzazione dei percorsi durante la scrittura dei file caricati. Quando il plugin non riesce a decrittare una chiave di sessione utilizzando openssl_private_decrypt(), non termina l'esecuzione e invece passa il valore booleano false all'inizializzazione della cifratura AES della libreria phpseclib. La libreria tratta questo valore false come una stringa di byte nulli, consentendo a un attaccante di cifrare un payload dannoso utilizzando una chiave prevedibile di byte nulli. Inoltre, il plugin accetta nomi di file dal payload decrittato senza sanitizzazione, consentendo il directory traversal per sfuggire alla directory di backup protetta. Ciò rende possibile per attaccanti non autenticati caricare file PHP arbitrari in directory accessibili pubblicamente e ottenere l'esecuzione remota di codice tramite il parametro wpvivid_action=send_to_site.
https://nvd.nist.gov/vuln/detail/CVE-2026-1357
Organizza la cartella del tuo progetto come segue:
.
├── docker-compose.yml
├── exploit.py
├── requirements.txt
├── vulnerable-plugin-folder/ # Area di staging per il plugin
└── wp-content/ # Dati WP persistenti (creati da Docker)
Poiché la vulnerabilità è stata corretta nelle versioni successive, devi scaricare manualmente e preparare la versione 0.9.123. Esegui questi comandi dalla root del tuo progetto:
# Scarica la versione vulnerabile
wget https://downloads.wordpress.org/plugin/wpvivid-backuprestore.0.9.123.zip
# Crea la directory di staging
mkdir vulnerable-plugin-folder
# Estrai e sposta i file nella posizione corretta
unzip wpvivid-backuprestore.0.9.123.zip
mv wpvivid-backuprestore/* vulnerable-plugin-folder/
rm -rf wpvivid-backuprestore wpvivid-backuprestore.0.9.123.zip
docker-compose up -d
http://localhost:8080 e completa l'installazione./wp-admin).pip install -r requirements.txt
Esegui lo script contro il tuo target di laboratorio:
python3 exploit.py localhost:8080 --command "id"
In caso di successo, lo script restituirà i risultati del comando (ad es., uid=33(www-data) gid=33(www-data)). Puoi anche verificare l'esistenza della shell nel tuo laboratorio:
docker exec wpvivid-lab ls /var/www/html/wp-content/uploads/
Questo strumento è destinato esclusivamente a scopi educativi e a ricerche di sicurezza autorizzate. L'accesso non autorizzato a sistemi informatici è illegale.