piyolog

piyokangoの備忘録です。セキュリティの出来事を中心にまとめています。このサイトはGoogle Analyticsを利用しています。

WordPress Coreの脆弱性 CVE-2026-63030 / CVE-2026-60137 (通称「wp2shell」)についてまとめてみた

2026年7月17日、WordPressを開発するWordPress.orgは、WordPress Coreに認証不要のリモートコード実行(RCE)に至る深刻な脆弱性が確認されたとして、セキュリティリリース版WordPress 7.0.2を公開し、対象バージョンを利用するサイトに自動更新システム経由での強制アップデートを有効化する対応を取りました。これら2件の脆弱性を組み合わせた攻撃は、発見者により「wp2shell」と命名されています。ここでは関連する情報をまとめます。

どんな脆弱性が確認されたの?

  • WordPress Coreでは、REST APIのバッチ処理において、サブリクエストと対応するルート・ハンドラー・検証結果の対応関係がずれる不具合(CVE-2026-63030)と、WP_Queryのauthor__not_inパラメータに攻撃者が制御可能なスカラー値が渡された場合にSQLインジェクションが生じる不具合(CVE-2026-60137)が確認された。
  • CVE-2026-63030を悪用すると、本来Batch API経由では呼び出せないREST APIエンドポイントの実行や、パラメータの存在確認、型チェック、権限確認など、エンドポイント実行前の検証を迂回できる。CVE-2026-60137と組み合わせることで、影響を受けるWordPress 6.9.0〜6.9.4および7.0.0〜7.0.1の標準構成に対し、未認証の攻撃者がリモートコード実行に至る攻撃チェーンが成立する。この攻撃チェーンは、発見者により「wp2shell」と命名されている。(出典: 1, 2, 3, 4, 13, 19, 20)
  • CVE-2026-60137の脆弱な処理はWordPress 6.8系にも存在する。ただし、6.8系の標準構成では、攻撃者が制御する値をauthor__not_inへ渡す外部入力経路は確認されておらず、悪用にはプラグインやテーマ等による入力経路が別途必要となる。(出典: 6, 7, 13)

脆弱性概要

項目 CVE-2026-63030 CVE-2026-60137
脆弱性名称 REST APIバッチ処理におけるルート・検証結果の混同 WP_Query author__not_inパラメータのSQLインジェクション
CVSS(base) 9.8 Critical(WPScan CNA)/ 7.5 High(CISA-ADP)/ 9.8 Critical(Wordfence Intelligence) 5.9 Medium(WPScan CNA)/ 9.1 Critical(CISA-ADP)/ 7.5 High(Wordfence Intelligence)
CWE CWE-436(Interpretation Conflict/CISA-ADP) CWE-89(SQL Injection/CISA-ADP)
発見者 Adam Kues氏(Assetnote / Searchlight Cyber) Tin Pham(TF1T)氏・Trong Pham(dtro)氏・haongo氏(チーム)
悪用時影響(単独) 本来呼び出せないREST APIエンドポイントの実行や、パラメータ検証・型検証・権限確認等の迂回 攻撃者が制御可能な値をauthor__not_inへ渡す入力経路が存在する場合、SQLインジェクションが可能
  • VulnCheckはパッチ公開直後の初期解析で、CVE-2026-60137単独では認証済みユーザーのみが到達可能と説明している。一方、WPScan CNAおよびCISA-ADPのCVSSベクトルはいずれもPrivileges RequiredをNoneとしている。必要権限に関する評価が異なる理由は公開情報から確認できず、各CVSS値の前提とWordPress Core標準構成における実際の到達可能性は分けて解釈する必要がある。(出典: 6, 7, 15) また、GMO Flatt Securityの解析によれば、CVE-2026-60137の原因コードはWordPress 6.8.0から存在していたが、6.8系の標準構成では当該パラメータへの外部からの入力経路がなくプラグイン・テーマ側の実装不備が別途必要だったため、少なくともデフォルトのセットアップでは本脆弱性単体では攻撃できなかったとしている。(出典: 22)

影響を受ける対象は?

未認証RCEに至るwp2shell攻撃チェーンには、CVE-2026-63030とCVE-2026-60137の両方が必要。CVE-2026-63030の原因となる不具合はWordPress 6.9で導入され、影響を受けるバージョンは6.9.0〜6.9.4および7.0.0〜7.0.1。このため、これらのバージョンの標準構成では、wp2shellによる未認証RCEが成立する。

他方で、WordPress 6.8.0〜6.8.5にはCVE-2026-60137の脆弱な処理が存在するが、CVE-2026-63030は存在しない。このためwp2shellによる未認証RCEは成立しない。また、6.8系の標準構成ではCVE-2026-60137の脆弱なパラメータへ外部入力を渡す経路は確認されておらず、悪用にはプラグインやテーマ等による入力経路が別途必要とされる。(出典: 2, 3)

WordPressバージョン CVE-2026-60137 CVE-2026-63030 標準構成でのwp2shell 修正版
6.8.0〜6.8.5 脆弱な処理あり。悪用には別途入力経路が必要 対象外 不成立 6.8.6
6.9.0〜6.9.4 影響あり 影響あり 成立 6.9.5
7.0.0〜7.0.1 影響あり 影響あり 成立 7.0.2
7.1開発版(Beta 1まで) 影響あり 影響あり 成立 7.1 Beta 2
  • CVE-2026-63030の原因となる不具合はWordPress 6.9で導入されたため、6.8系以前はwp2shellによる未認証RCEチェーンの対象外である。(出典: 2)
  • Cloudflareの分析によれば、永続的オブジェクトキャッシュ(persistent object cache)を使用していないサイトでRCE経路への到達性があるとしている。使用時の到達性の有無は明らかになっていない。(出典: 11)

脆弱性の対応方法

  1. 利用中のWordPressのバージョンを確認する。
  2. 利用している系列に対応する修正版へ更新する。深刻度を踏まえ、WordPress.orgは影響を受けるバージョンに対し、自動更新システム経由での強制アップデートを有効化している。公式発表では、自動バックグラウンド更新に対応するサイトで更新処理が自動的に開始されると説明しているが、自動更新を明示的に無効化したサイトへの適用有無は明らかにされていない。自動更新に対応するサイトであっても、修正版が実際に適用されたか確認することを推奨する。(出典: 1, 19, 20)
  3. 対応が遅れた場合は、後述の確認方法を参考に侵害の兆候がないか調査する。
  4. 直ちに更新できない場合の緩和策として、発見者Searchlight Cyberはwp-content/plugins/に配置し有効化する緩和策プラグインを公開している。Cloudflareは事前調整に基づき、アプリケーショントラフィックがCloudflare WAFを経由する無料・有料プランの顧客に対し、両CVEに対応するWAFルールを展開している。Wordfenceも有償プラン顧客向けにファイアウォールルールの提供を開始している。WordPressプロジェクトリードのMatt Mullenweg氏は、責任ある開示(responsible disclosure)を受けたことで、WordPress.orgのセキュリティチームがホスティング事業者・CDN事業者とあらかじめ調整し、更新の公開前にネットワーク層でも攻撃を緩和できるようにしていたと説明している。(出典: 5, 9, 10, 11, 13)

GMO Flatt Securityは、日本の三連休(2026年7月18日〜20日)中にアップデートを行わない場合、被害が拡大する可能性があると注意を呼びかけている。(出典: 22)

影響を受けるかどうかの確認方法

  • 発見者Searchlight Cyberは、脆弱性の有無を判定できる公開チェッカー(wp2shell.com)を公開している。(出典: 10)
  • セキュリティ企業Hadrianも、公開されたパッチの差分解析に基づき、対象サイトを侵害せずに脆弱性の有無を判定できる非破壊的な検知手法を独自に公表している。(出典: 17)
脆弱性悪用の影響を既に受けているかの確認方法
  • 2026年7月19日時点で、確認した公的機関・開発元の情報では、侵害の兆候を確認するための具体的な指標(IoC)は公表されていない。(出典: 1, 2, 3, 4, 8)

悪用に関する動きは?

  • 実悪用の有無については、2026年7月19日時点で以下のように報告が分かれている。Patchstackは自社の脆弱性緩和ツール(RapidMitigate)のログ上で「既に悪用試行を確認した」と報告している(具体的な観測内容は同社記事内では詳述されていない)。watchTowrのCEO Benjamin Harris氏も、CyberInsiderの取材に対し「PoCエクスプロイトが既に流通しており、実悪用の初期兆候も確認している」とコメントしたと報じられている(PoCの具体的な範囲は同記事では明示されていない)。(出典: 12, 21)
  • 一方、Beazley Security Labsは「執筆時点で本脆弱性の実悪用は確認していない」と明記している。Rapid7 Labsも、米東部時間2026年7月17日17時45分時点で「公に確認された実悪用は認識していない」としつつ、これを低リスクの根拠と解釈しないよう注意を促している。VulnCheckは、Patchstackが米東部時間19時前ごろから悪用を報告している点に言及しつつ、「具体的に何が観測されているのかは不明瞭」と留保を付けている。(出典: 14, 15, 16)
  • CISAの既知悪用脆弱性(KEV)カタログには、2026年7月19日時点でCVE-2026-63030・CVE-2026-60137のいずれも登録されていない。(出典: 8)
  • The Hacker Newsは、GitHub上でworking proof-of-conceptが公開されたと報じている(出典: 20)。公開されたIcex0氏のPoCは当初、未認証SQLインジェクションによるデータベース読み取りや管理者パスワードハッシュの取得までを実装しており、プラグインアップロードによるコード実行には、取得したハッシュの解読等によって有効な管理者認証情報を別途得る必要があるとしていた。
  • その後、同リポジトリでは2026年7月18日の更新により、未認証SQLインジェクションを利用して複数のWordPress内部処理を連鎖させ、管理者アカウントを作成する処理がコード上に追加された。リポジトリの説明では、作成した管理者アカウントでログインし、WordPressのプラグインアップロード機能を利用してコマンドを実行するとしている。管理者アカウントの作成までを未認証の処理、最終的なコード実行を作成した管理者アカウントによる認証済み操作と位置付けている。piyokangoは当該PoCの一連の動作を独立して再現していない。また、同リポジトリには7月19日にもSQLインジェクション処理等の修正が加えられている。
  • オランダのペンテスト企業Hackifyは、隔離した検証環境において公開情報とwp2shell.comのチェッカーを基に、AIコーディング支援(Claude Code)を用いて「約6分でPoCを再構成できた」と報告している。同社はPoCのコードや手順を公開しないとしている。(出典: 18)
  • GMO Flatt Securityは自社リサーチチームによる独自検証で、脆弱なバージョンでは標準構成でも管理者の認証情報等を要さずリモートからの任意コード実行が可能であると判断したと公表している。侵害後に残る痕跡の一部は、悪用手順の指南につながるとして非公開としており、この検証結果は同社単独によるものである。(出典: 22)

関連タイムライン

日時 出来事
2025年12月2日 WordPress 6.9がリリースされ、後に脆弱性の一部となるREST APIバッチルート混同の不具合(コミット880bb48で導入)が生じる(バッチエンドポイント自体は2020年公開の5.6から存在。この時点では脆弱性として認識されていない)
2026年7月17日 WordPress.orgがセキュリティリリース版7.0.2(および6.9.5・6.8.6・7.1 beta2)を公開し、CVE-2026-63030・CVE-2026-60137を修正
同日 Cloudflareが両CVEに対応するWAFルールを全顧客に展開
同日 Wordfenceが有償プラン顧客向けにファイアウォールルールの提供を開始(無料版は2026年8月16日提供予定)

参考情報

公式セキュリティ情報

公的機関等の脆弱性情報

セキュリティベンダ等の報告

(日付は公開元のものを記載しているため、現地時間等でずれている可能性があります。)

更新履歴

  • 2026年7月19日 PM 訂正:悪用時影響の誤認(単独で悪用可能等)について訂正。
  • 2026年7月19日 PM 新規作成