
Proof-of-Concept-Exploit für CVE-2026-1357, einen nicht authentifizierten beliebigen Datei-Upload im WPvivid Backup & Migration-Plugin für WordPress, der Remote-Code-Ausführung ermöglicht.
Das Migration, Backup, Staging – WPvivid Backup & Migration Plugin für WordPress ist in Versionen bis einschließlich 0.9.123 anfällig für nicht authentifiziertes willkürliches Hochladen von Dateien. Dies ist auf eine fehlerhafte Fehlerbehandlung im RSA-Entschlüsselungsprozess in Kombination mit einem Mangel an Pfadbereinigung beim Schreiben hochgeladener Dateien zurückzuführen. Wenn das Plugin einen Sitzungsschlüssel mit openssl_private_decrypt() nicht entschlüsseln kann, beendet es die Ausführung nicht, sondern übergibt den booleschen Wert false an die AES-Chiffre-Initialisierung der phpseclib-Bibliothek. Die Bibliothek behandelt diesen false-Wert als eine Zeichenkette aus Null-Bytes, wodurch ein Angreifer eine bösartige Nutzlast mit einem vorhersehbaren Null-Byte-Schlüssel verschlüsseln kann. Darüber hinaus akzeptiert das Plugin Dateinamen aus der entschlüsselten Nutzlast ohne Bereinigung, was einen Directory-Traversal-Angriff ermöglicht, um das geschützte Backup-Verzeichnis zu verlassen. Dies ermöglicht es nicht authentifizierten Angreifern, beliebige PHP-Dateien in öffentlich zugängliche Verzeichnisse hochzuladen und über den Parameter wpvivid_action=send_to_site Remote Code Execution zu erreichen.
https://nvd.nist.gov/vuln/detail/CVE-2026-1357
Organisieren Sie Ihren Projektordner wie folgt:
.
├── docker-compose.yml
├── exploit.py
├── requirements.txt
├── vulnerable-plugin-folder/ # Staging-Bereich für das Plugin
└── wp-content/ # Persistente WP-Daten (von Docker erstellt)
Da die Schwachstelle in späteren Versionen behoben wurde, müssen Sie Version 0.9.123 manuell herunterladen und bereitstellen. Führen Sie diese Befehle aus Ihrem Projektstammverzeichnis aus:
# Die anfällige Version herunterladen
wget https://downloads.wordpress.org/plugin/wpvivid-backuprestore.0.9.123.zip
# Das Staging-Verzeichnis erstellen
mkdir vulnerable-plugin-folder
# Dateien extrahieren und an den richtigen Ort verschieben
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 und schließen Sie die Installation ab./wp-admin).pip install -r requirements.txt
Führen Sie das Skript gegen Ihr Laborziel aus:
python3 exploit.py localhost:8080 --command "id"
Bei Erfolg gibt das Skript die Ergebnisse des Befehls aus (z. B. uid=33(www-data) gid=33(www-data)). Sie können die Existenz der Shell auch in Ihrem Labor überprüfen:
docker exec wpvivid-lab ls /var/www/html/wp-content/uploads/
Dieses Tool dient nur zu Bildungszwecken und für autorisierte Sicherheitsforschung. Unautorisierter Zugriff auf Computersysteme ist illegal.