
Preuve de concept d'exploitation pour CVE-2026-1357, un téléversement arbitraire de fichier non authentifié dans le plugin WPvivid Backup & Migration pour WordPress, permettant l'exécution de code à distance.
Le plugin WordPress Migration, Backup, Staging – WPvivid Backup & Migration est vulnérable à un téléversement arbitraire de fichiers non authentifié dans les versions jusqu'à la 0.9.123 incluse. Cela est dû à une gestion d'erreur inappropriée dans le processus de déchiffrement RSA combinée à un manque d'assainissement des chemins lors de l'écriture des fichiers téléversés. Lorsque le plugin échoue à déchiffrer une clé de session avec openssl_private_decrypt(), il ne termine pas l'exécution et transmet à la place la valeur booléenne false à l'initialisation du chiffrement AES de la bibliothèque phpseclib. La bibliothèque traite cette valeur false comme une chaîne d'octets nuls, permettant à un attaquant de chiffrer une charge utile malveillante en utilisant une clé d'octets nuls prévisible. De plus, le plugin accepte les noms de fichiers issus de la charge utile déchiffrée sans assainissement, permettant une traversée de répertoire pour échapper au répertoire de sauvegarde protégé. Cela permet à des attaquants non authentifiés de téléverser des fichiers PHP arbitraires dans des répertoires accessibles publiquement et d'obtenir une exécution de code à distance via le paramètre wpvivid_action=send_to_site.
https://nvd.nist.gov/vuln/detail/CVE-2026-1357
Organisez votre dossier de projet comme suit :
.
├── docker-compose.yml
├── exploit.py
├── requirements.txt
├── vulnerable-plugin-folder/ # Zone de préparation du plugin
└── wp-content/ # Données WP persistantes (créées par Docker)
Étant donné que la vulnérabilité a été corrigée dans les versions ultérieures, vous devez télécharger et préparer manuellement la version 0.9.123. Exécutez ces commandes depuis la racine de votre projet :
# Télécharger la version vulnérable
wget https://downloads.wordpress.org/plugin/wpvivid-backuprestore.0.9.123.zip
# Créer le répertoire de préparation
mkdir vulnerable-plugin-folder
# Extraire et déplacer les fichiers en place
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 et terminez l'installation./wp-admin).pip install -r requirements.txt
Exécutez le script contre votre cible de laboratoire :
python3 exploit.py localhost:8080 --command "id"
En cas de succès, le script affichera les résultats de la commande (par exemple, uid=33(www-data) gid=33(www-data)). Vous pouvez également vérifier l'existence du shell dans votre laboratoire :
docker exec wpvivid-lab ls /var/www/html/wp-content/uploads/
Cet outil est destiné à des fins éducatives et à la recherche en sécurité autorisée uniquement. L'accès non autorisé à des systèmes informatiques est illégal.