WordPress コアに対する攻撃チェーン WP2Shell:2つの脆弱性の連鎖による RCE

Critical WordPress Flaws Allow Attackers to Execute Remote Code Without Authentication

2026/10/17 gbhackers — WordPress のコア機能に存在する 2件の脆弱性を組み合わせることで、認証を必要とせずにリモートコード実行 (RCE) へ到達できる攻撃チェーンが報告された。この WP2Shell と呼ばれる攻撃チェーンは、REST API のルーティング処理に関する問題と SQL インジェクションを組み合わせて悪用するものだと、セキュリティ企業 Seqrite の研究者 Amruta Wagh は説明している。WP2Shell は 2026年7月に確認されたとされており、攻撃者は有効な WordPress の認証情報を必要とせずに、公開されている API エンドポイントを起点としてサーバを侵害する可能性がある。報告された攻撃チェーンは、WordPress 6.9.0~6.9.4 および 7.0.0~7.0.1 に影響する。

通常、プラグインの導入などの管理操作においては、管理者権限が必要になる。しかし、2件の脆弱性を段階的に悪用する WP2Shell では、最初のアカウント侵害を必要とせずに管理者アカウントの作成と Web シェルの設置に到達するという。

なお、公開された調査は、概念実証 (PoC) と検証環境での動作を説明するものであり、実際の環境で大規模な悪用が発生していることを示すものではない。

WordPress の 2件の脆弱性を組み合わせる WP2Shell

WP2Shell は、WordPress の REST API に関連する、2件の脆弱性を連鎖させる攻撃手法である。最初の脆弱性により、本来認証が必要な機能へアクセスする経路を確保した後に、2件目の脆弱性である SQLインジェクションにより、データベースを操作する。

その後に攻撃者は、管理者アカウントを作成し、悪意のプラグインを導入することでコード実行へつなげる。

項目内容
攻撃チェーン名WP2Shell
対象製品WordPress Core
関連する脆弱性CVE-2026-63030、CVE-2026-60137
攻撃の種類認証不要の複数段階攻撃
主な攻撃対象WordPress REST API
想定される影響管理者アカウント作成、悪意のあるプラグイン導入、リモートコード実行
攻撃チェーンの影響範囲WordPress 6.9.0~6.9.4、7.0.0~7.0.1
報告された修正済みバージョン6.8.6、6.9.5、7.0.2
大規模な実環境での悪用原文では確認されていない

今回の攻撃の特徴は、いずれか一方の脆弱性だけで、直ちにリモートコード実行が成立するわけではない点だ。具体的に言うと、認証制御の回避/データベース操作/管理者権限の取得/悪意のプラグイン設置という複数の段階を経て、最終的にサーバー上でのコード実行につながる。

CVE-2026-63030:REST APIのルーティング処理に存在する脆弱性

最初に悪用される脆弱性は、WordPress REST API のバッチ・コントローラーに影響する CVE-2026-63030 である。この機能は、以下のエンドポイントを通じて提供されている。

/wp-json/batch/v1

このバッチ・コントローラーは、単一の JSON ペイロードに含まれる複数の API リクエストをまとめて処理する機能を持つ。Seqrite の分析によると、入れ子になったバッチ構造によりルートの解決処理に混乱が生じ、本来は想定されていないハンドラーへ向けて、リクエストが振り分けられる可能性がある。

認証が必要な API 機能への不正アクセスが可能に

この問題を悪用する攻撃者は、通常であれば認証が必要な機能へ不正アクセスする可能性がある。ただし、CVE-2026-63030自体が、直接的にコード実行を引き起こすわけではない。

この脆弱性の役割は、後続の攻撃に必要な認証不要の入口を提供することだ。この経路を悪用する攻撃者は、2 件目の脆弱性へ攻撃を進める。

Wp2shell Exploit Flow (Source: seqrite)
Wp2shell Exploit Flow (Source: seqrite)
CVE-2026-60137:投稿エンドポイントの SQL インジェクション

2件目の脆弱性は、WordPressの投稿エンドポイントに関連する CVE-2026-60137 である。この問題は、SQL インジェクションに分類される。

WordPress REST API では、公開パラメーターである author_exclude が、内部的に WP_Query の author__not_in 引数へ対応付けられている。しかし、入力値の処理が不十分な場合、細工された値がデータベース・クエリに影響を与える可能性がある。

2件の脆弱性を連鎖させてデータベースを操作

WP2Shell を悪用する攻撃者は、CVE-2026-63030により認証制御を回避する経路を確保し、CVE-2026-60137 を悪用してデータベース操作へ進む。この組み合わせにより、攻撃者は公開されているバッチインターフェイスを起点として、通常は実行できない操作に至る可能性がある。

攻撃段階悪用される問題役割
第1段階CVE-2026-63030REST APIのルート解決を混乱させ、認証が必要な機能への経路を確保
第2段階CVE-2026-60137SQLインジェクションによるデータベース操作
第3段階両脆弱性を利用した侵害管理者アカウントの作成
第4段階取得した管理者権限悪意のあるプラグインの導入
最終段階Webシェルサーバー上でのコード実行

WP2Shell のリモートコード実行は、REST API のルーティング処理の問題だけで成立するものではなく、複数段階の侵害を経て実現される。

管理者アカウントを作成し悪意のプラグインを設置

Seqrite が説明する実証環境では、攻撃者はデータベース操作により管理者アカウントを作成した後に、Web シェルを含む悪意のプラグインを導入していた。この Web シェルは、攻撃者が Web サーバ上で不正な操作を行うために使用するスクリプトで構成されている。

WordPress においては、プラグインに PHP コードが含まれるため、悪意のプラグインが設置/実行されると、サーバ側での不正なコード実行が引き起こされる可能性がある。

temp-write-test-* ファイルで書き込み権限を確認

報告された検証環境では、攻撃の準備段階として、wp-content/ 配下に一時ファイルが作成されていた。確認されたファイル名は、以下のパターンに一致する。

temp-write-test-*

これらのファイルは、ディレクトリへの書き込みが可能かどうかを確認するために使用されたとみられる。その後に、一時ファイルは削除されていた。

したがって、調査時点でファイルが残っていない場合であっても、ファイルの作成や削除の履歴が確認できれば、攻撃の痕跡を把握する手掛かりとなる可能性がある。

ZIP アーカイブから PHP ペイロードを展開

次の段階では、悪意のプラグインを含む ZIP アーカイブが、WordPress のアップロード・ディレクトリに配置されていた。具体的には、以下のファイル名が例として挙げられている。

wp2shell_4e9b3641.zip

このZIPアーカイブは、次のディレクトリに配置されていた。

wp-content/uploads/2026/10/

その後、アーカイブの展開処理により、PHP ペイロードが以下のディレクトリに書き込まれた。

wp-content/upgrade/wp2shell_<hex>/

最終的に、プラグイン・ディレクトリは次の場所へ移動された。

wp-content/plugins/wp2shell_<hex>/

この <hex> は、ファイル名やディレクトリ名に含まれる 16進数形式の識別部分を表す。

WordPress のプラグイン管理機能を悪用

これらのファイル操作は、通常の WordPress プラグイン・インストール処理と一部共通する。そのため、ZIP アーカイブの展開やプラグイン・ディレクトリへのファイル配置だけで、直ちに不正な活動と判断することはできない。

ただし、WP2Shell の特徴的なファイル名/不審な PHP ファイル/新たに作成された管理者アカウントなどが同時に確認された場合には、詳細な調査が必要となる。

 target directory (Source: seqrite)
target directory (Source: seqrite)
httpd.exe による不審なファイル書き込みを確認

Seqrite が観測した環境では、関連するファイルの書き込みを httpd.exe プロセスが実行していた。この httpd.exeは、Windows 環境で動作する Apache HTTP Server の実行ファイル名として使用されるものだ。

WordPress のプラグイン・インストールでは、Web サーバのプロセスがファイルを作成/変更することがあるため、この動作自体が必ずしも不正とは限らない。しかし、次のような痕跡が組み合わさって確認された場合には、WP2Shell に関連する活動を疑う手掛かりとなる。

  • temp-write-test-* に一致する一時ファイルの作成。
  • wp2shell_*.zip に類似するZIPアーカイブの配置。
  • wp-content/upgrade/ 配下での不審な PHP ファイルの展開。
  • wp-content/plugins/ 配下への予期しないプラグインの追加。
  • 承認されていない管理者アカウントの作成。

これらのファイル・システム上の痕跡と、REST API へのアクセス履歴を関連付けて確認することが重要だ。

WP2Shellの調査に役立つ侵害指標

今回の研究では、攻撃の検証環境で確認されたファイル名やディレクトリが、調査の手掛かりとして示されている。

確認対象種類調査ポイント
/wp-json/batch/v1REST APIエンドポイント不審なHTTP POSTリクエスト
temp-write-test-*一時ファイル書き込み可否の確認とみられる活動
wp2shell_4e9b3641.zipZIPアーカイブ悪意のあるプラグインの配置例
wp-content/uploads/2026/10/アップロード先不審なZIPファイルの配置
wp-content/upgrade/wp2shell_<hex>/展開先PHPペイロードの書き込み
wp-content/plugins/wp2shell_<hex>/プラグインディレクトリ不審なプラグインの設置
httpd.exeプロセス検証環境でファイル書き込みを実行

これらは研究で観測された特徴であり、すべての攻撃環境で同じファイル名やディレクトリが使用されるとは限らない。

REST API への POST リクエストを調査

防御側にとって必要なことは、ファイル・システム上の痕跡に加えて、/wp-json/batch/v1 への HTTP POST リクエストを確認することである。

特に、通常の API 利用とは異なる入れ子構造を持つ JSON ペイロードや、予期しないルーティング処理につながるリクエストが調査対象となる。

不審な API アクセスと管理者アカウントの作成/プラグインの追加/PHP ファイルの変更が同じ時間帯に発生していないかどうか確認することが重要だ。

影響を受ける WordPress のバージョン

アドバイザリのバージョン情報によると、WP2Shell の完全な攻撃チェーンはWordPress 6.9系および、7.0系の一部に影響する。

また、WordPress 6.8系には SQL インジェクションの脆弱性は存在するが、同じ攻撃チェーンの影響対象には含まれない。

WordPressバージョン影響
6.8.0~6.8.5CVE-2026-60137の影響あり。完全なWP2Shell攻撃チェーンの対象ではない
6.8.6修正済み
6.9.0~6.9.4WP2Shell攻撃チェーンの影響あり
6.9.5修正済み
7.0.0~7.0.1WP2Shell攻撃チェーンの影響あり
7.0.2修正済み

管理者にとって必要なことは、利用中の WordPress のバージョンを確認し、該当するサポート対象の修正済みリリースへ更新することである。

WordPress 管理者に推奨される対策

今回の問題は WordPress のコア機能に関連しているため、プラグインやテーマだけでなく、WordPress 本体の更新状況を確認することが重要だ。

推奨される対応は以下のとおり。

  1. WordPress Core を修正済みバージョンへ更新する:6.8系/6.9系/7.0系で、それぞれ該当する修正済みリリースを確認する。
  2. 管理者アカウントを監査する:承認されていない管理者アカウントが追加されていないか確認する。
  3. プラグインディレクトリを調査する:wp-content/plugins/ 配下に、不審なプラグインや PHP ファイルが存在しないことを確認する。
  4. アップロード・更新ディレクトリを確認する:wp-content/uploads/ や wp-content/upgrade/ 配下に、不審な ZIP アーカイブや PHP ファイルが残されていないか調査する。
  5. REST API のアクセス履歴を確認する:バッチエンドポイントへの不審な POST リクエストや、異常な入れ子構造の API ペイロードを調査する。
  6. 必要に応じて REST API へのアクセスを制限する:運用上可能な場合には、機密性の高い REST API 機能への認証不要なアクセスを制限し、修正が完了するまでのリスクを低減する。
パッチ適用後も Web シェルや不正アカウントが残る可能性

WP2Shell により、すでに攻撃の最終段階で管理者アカウントが作成され、悪意のプラグインが導入されている可能性がある。

そのため、WordPress 本体を修正済みバージョンに更新しても、設置済みの Web シェルや不正な管理者アカウントが、自動的に削除されるとは限らない。

侵害が疑われる場合には、パッチ適用と並行して、アカウント/プラグイン/PHP ファイル/アクセスログなどを調査する必要がある。

複数の脆弱性を連鎖させる攻撃への警戒が必要

WP2Shell は、REST API のルーティング処理に関する問題とSQLインジェクションを組み合わせるものであり、認証不要の状態から管理者権限の取得/悪意のプラグインの設置/リモートコード実行へ進む攻撃チェーンである。

最初の CVE-2026-63030 は、認証が必要な機能へ到達するための入口となる。続く CVE-2026-60137 では、データベース・クエリ処理に関する問題が悪用される。

今回の調査では、WordPress 6.9.0~6.9.4 および 7.0.0~7.0.1 が、攻撃チェーンの影響対象として報告されている。

その一方で、WordPress 6.8.0~6.8.5 については、SQLインジェクションの脆弱性のみが影響するとされている。

WordPress 管理者にとって必要なことは、修正済みリリースである 6.8.6/6.9.5/7.0.2 などへの更新を優先し、不審な管理者アカウント/プラグイン/PHP ファイルが設置されていないことを確認することである。