WordPressコアに認証前RCE「wp2shell」、6.9/7.0系に影響 7.0.2などで修正

WordPress.orgが、自動更新を切っているサイトにまでパッチを配ろうとしました。管理者の設定を尊重するのが原則のはずなのに、なぜそこまで踏み込んだのか。その答えは、匿名のリクエスト一つでサーバーが乗っ取られうるという、あまりに開かれた入口の危うさにあります。


WordPressのコアで、認証前のリモートコード実行(RCE)を許す脆弱性「wp2shell」が公表されました。ログインもプラグインも特殊な設定も不要で、標準状態のWordPressに匿名のリクエストを送ることで悪用されうる点が特徴です。

WordPressは推定5億以上のWebサイトで利用されていますが、RCEの影響を受けるのは6.9.0から6.9.4、および7.0.0から7.0.1を使用し、攻撃経路が成立する構成のサイトで、実際の影響サイト数は公表されていません。

発見・報告したのはSearchlight Cyberのアダム・キューズで、原因はREST APIのバッチルートの取り違え(CVE-2026-63030)が、SQLインジェクション(CVE-2026-60137)と組み合わさってRCEに至る連鎖にあります。RCEチェーンは6.9以降が対象で、6.8.0から6.8.5はチェーンを構成するSQLインジェクションの影響を受けます。

2026年7月17日、WordPress.orgは修正版7.0.2を公開し、6.9.5には両方の修正を、6.8.6にはSQLインジェクションの修正をバックポート。深刻度を踏まえ、該当バージョンを自動更新システム上の強制更新の対象に指定しました。

From: 文献リンクwp2shell: Pre Authentication RCE in WordPress Core(Searchlight Cyber)

【編集部解説】

「自分のサイトは、今この瞬間、書き換えられていないだろうか」——WordPressを使っている方なら、まずこの問いから始めてほしいと思います。

今回の「wp2shell」が並の脆弱性と一線を画すのは、攻撃の「入口」があまりにも開かれている点にあります。

多くの攻撃では、サイトに侵入するまでにいくつもの前段階が必要です。ログイン情報を盗む、脆弱性のあるプラグインを見つける、設定の隙を探す——そうした手間の一つひとつが、防御側にとっては時間稼ぎの壁になります。

ところが、この脆弱性ではその壁の多くが取り払われています。ログインも、追加のプラグインも、特殊な設定も要りません。標準状態のWordPressに、匿名のリクエストを送ることで、サーバー上でのコード実行にまで至りうるのです。ただし、これが常にどんな環境でも一発で成立すると断言はできません。Cloudflareは、永続オブジェクトキャッシュを使用していない構成といった条件にも触れており、「前提条件が完全にゼロ」と絶対視するのは避けるべきでしょう。

技術的には、二つの弱点が組み合わさることで、リモートコード実行に至ります。REST APIのバッチ処理でリクエストの対応関係がズレる欠陥(CVE-2026-63030)と、WP_Queryauthor__not_in の処理をすり抜けるSQLインジェクション(CVE-2026-60137)——この二つが連鎖することで、Web攻撃として最悪の結果であるリモートコード実行に化けます

被害の範囲は、サイトの改ざんだけにとどまりません。データベースへのアクセス、そこに保存された認証情報や個人情報、さらにはサーバーの権限や構成しだいでは周辺のホスティング環境にまで及びうると、複数のセキュリティ企業が指摘しています。ただし、共用サーバーだからといって自動的に他サイトへ横展開できるわけではなく、権限やアカウント分離の設計に左右される点は補っておきます。

ここで、少し歴史的な視点を加えたいと思います。

WordPressの共同創設者であるマット・マレンウェグは、この種の「認証前RCE」はWordPressの23年の歴史で数回しか現れておらず、前回は自身の記憶では5年前のPHPMailerのケースだったと述べています。これは体系的な全件調査に基づく統計ではなく本人の回想ですが、それでも世界のWebの相当部分を支える基盤に、めったに開かない穴が空いた事案だという受け止めは、大きく外れないはずです。

私が今回もっとも注目したのは、WordPress.org側の対応です。

WordPress.orgは深刻度を踏まえ、影響を受けるバージョンを自動更新システム上の「強制更新」の対象に指定しました。通常の自動更新に加えてこの措置を取ったという判断そのものが、この脆弱性を極めて重大と評価していることを物語っています。

ただし、ここに落とし穴があります。「強制更新の対象になったから、うちは大丈夫」と考えるのは、まだ早いかもしれません。

「強制更新の対象に指定した」ことと「すべてのサイトのローカル設定を無視して必ず適用される」ことは、同じではないからです。定数 AUTOMATIC_UPDATER_DISABLEDtrue にして自動更新を完全に無効化している環境では、WordPressコアの自動アップデーター自体が停止するため、コアの自動更新処理によるパッチ適用は行われません。バージョン管理でデプロイを固定している構成や、ファイル権限・ホスティング側の制約がある場合も、更新が届かないことがあります。だからこそ発見者たちは、Searchlight Cyber自身の技術詳細をあえて伏せたうえで、誰でも自分のサイトを点検できる無料チェッカーを公開しました。攻撃の材料は渡さず、防御の手段だけを配る——この判断のバランスに、防御側を守ろうとする姿勢がにじんでいます。

もう一つ、検知の難しさも見過ごせません。この攻撃は、正規形式のバッチAPIリクエストを用いるため、単純な文字列シグネチャだけでは見分けにくいとされています。もっとも、「WAFでは防げない」という話ではありません。Cloudflareは無料・有料プランを含むWAF利用サイト向けに専用ルールを展開しています。WordfenceもPremium・Care・Response向けには7月17日に保護ルールを配信しましたが、Free版への提供は標準の30日遅延を経た8月16日の予定です。パターン検知一辺倒の防御には限界があり、加えて自分が使う保護の提供時期も確認しておくのが正確でしょう。

対象となるバージョンの範囲にも注意が必要です。RCEの連鎖が成立するのは6.9.0から6.9.4、および7.0.0から7.0.1です。一方、6.8系(6.8.0〜6.8.5)は「完全に無関係」ではありません。RCEチェーンの対象外ではあるものの、連鎖を構成するSQLインジェクションの影響は受けており、6.8.6で修正されています。6.8より前のバージョンは、今回の2件のいずれの影響も受けません。開発中の7.1系についても、プレリリース版が影響を受け、7.1 beta2で修正されました。「古いから安全」「最新の開発版だから安全」とは一概に言えないのが、今回の厄介なところです。

そして、状況は公表後に動いています。公表時点では実際の悪用は確認されていませんでしたが、その後Patchstackのデータベースが本件を「既知の悪用あり」として掲載しました。VulnCheckもこのPatchstackの表示を報じていますが、具体的に何が観測されたのかは明らかになっておらず、独立した複数社による実悪用確認とまではいえない段階です。あわせて、修正差分を解析した第三者のPoC(概念実証コード)も公開されています。現行のリポジトリは、認証前のルート混同とSQLインジェクションによるデータベース読み取りに加え、SQLインジェクションを起点に管理者アカウントを生成し、通常の管理機能を通じてコード実行へ至る経路まで実装したと説明しています。ただし、これは第三者によるPoCであり、その完全な動作をWordPressやSearchlight Cyberが公式に検証・追認したわけではありません。Rapid7は当初から「WordPressがオープンソースである以上、公開PoCは早期に出現する可能性が高い」と見ており、攻撃の敷居が下がるにつれ状況がさらに動く可能性は否定できません。

もしあなたがWordPressサイトを運用しているなら、今日のうちに実際のバージョンを確認し、7.0.2(6.9系なら6.9.5、6.8系なら6.8.6)以降になっているかを見てほしいと思います。本番だけでなく、ステージングや、忘れられがちなサブドメイン、クライアントのサイトも一つずつ。一つのサイトで更新できたことは、ほかのサイトの安全を保証しません。未来の便利さを享受するための足元は、こうした地道な確認の積み重ねで守られていくのだと、改めて感じさせる一件です。

【関連記事】

WordPress 7.1、AIに読まれるCMSへ ─ シェア41.5%が問う「エージェント時代の生き残り方」
今回パッチが出た7.0系の次にあたる7.1開発版の動向。REST APIをAIへ開く設計思想と、その裏で高まる攻撃面の広さを併せて読める。

Everest Forms Proの脆弱性CVE-2026-3300、修正版公開後も悪用が継続—WordPressサイト乗っ取りの手口と対策
「認証不要×リモートコード実行」という最悪の組み合わせを扱った直近記事。修正後も攻撃が続いた経緯が、今回のパッチ後の油断への警鐘になる。

WordPress Aloneテーマ脆弱性でサイト乗っ取り被害拡大、約12万回攻撃をブロック
認証なしでプラグインを送り込む手口と、パッチ公開前から攻撃が始まる「パッチギャップ」の実例。今回のPoC公開後の展開を考える材料になる。

【編集部後記】

WordPress.orgが自動更新を切っているサイトにまでパッチを配ろうとしました。管理者の設定を尊重するのが原則のはずなのに、なぜそこまで踏み込んだのか。その答えは、匿名のリクエスト一つでサーバーが乗っ取られうるという、あまりに開かれた入口の危うさにあります。

強制更新の対象に指定されても、AUTOMATIC_UPDATER_DISABLED を有効にした環境にはパッチが届きません。つまり、守りを固めようとして自動更新を止めていたサイトほど、今回の網から漏れてしまう。防御のつもりの設定が、いちばん危ない状態を招くという逆転が、この一件には潜んでいます。

自分のサイトが「更新を止めている側」なのか、確かめたことはあるでしょうか。管理画面の表示だけでは判断がつかない場合、wp-config.php のその一行を、一度自分の目で見ておく価値はあるはずです。


【用語解説】

RCE(リモートコード実行)
攻撃者が、離れた場所からサーバー上で任意のコードやコマンドを実行できてしまう状態を指す。Web上の脆弱性としては最も深刻な部類に位置づけられ、成功すればサイトの制御を奪われうる。

認証前(pre-authentication)
ログインなどの本人確認を一切経ずに攻撃が成立してしまう性質を指す。IDやパスワードを持たない完全な第三者でも悪用でき、今回はユーザーの操作すら必要としないため、危険度が格段に高い。

REST API
WordPressのデータをHTTP経由で読み書き・操作するための標準的な窓口。今回問題となった「バッチ処理」は、複数の操作をまとめて一度に送る仕組みで、ここでリクエストの対応関係がズレる欠陥が突かれた。

SQLインジェクション
本来は想定されない命令をデータベースへの問い合わせ文に紛れ込ませる攻撃手法。今回は、この欠陥がRCEに至る連鎖の起点の一つになっている。

CVE
公表されたサイバーセキュリティ脆弱性を識別・カタログ化するための世界共通の制度。今回はCVE-2026-63030(RCEチェーン)とCVE-2026-60137(SQLインジェクション)の2件が割り当てられている。

PoC(概念実証コード)
脆弱性が実際に成立することを検証するためのコード。防御側の調査に役立つ一方、公開されると攻撃の敷居を下げる場合がある。今回公開された第三者PoCは、認証前のSQLインジェクションやデータベース読み取りに加え、管理者アカウントの生成を経てコード実行に至る経路を実装したと説明している。ただし、WordPressや発見元による公式な検証結果ではない。

バックポート
新しいバージョンで施した修正を、まだサポート対象の古いバージョンにも適用すること。今回は7.0.2の修正が6.9.5へ、SQLインジェクションの修正が6.8.6へ反映された。

WAF(Web Application Firewall)
Webアプリケーションへの不正な通信を検知・遮断する仕組み。装置のほかクラウドサービスの形もある。今回の攻撃は正規の通信と見分けにくく、提供元やプランによって保護ルールの配信時期が異なる。

Assetnote
Searchlight Cyberが提供する攻撃対象領域管理(ASM)の製品・事業。アダム・キューズはこのAssetnote/Searchlight Cyberの所属として、今回のRCEチェーンを報告した。

【参考リンク】

WordPress.org(日本語)(外部)
世界のWebサイトの相当数を支えるオープンソースCMSの公式サイト。今回のパッチの配布元であり、更新方法もここで確認できる。

Searchlight Cyber(外部)
今回のRCEチェーンを発見・報告した英国拠点のサイバーセキュリティ企業。攻撃対象領域管理などを手がける一次情報の発信元だ。

wp2shell.com(外部)
Searchlight Cyberが公開した無料ツール。自分のWordPressサイトが脆弱かどうかを確認できる。侵害の有無を調べるものではない。

GitHub(WordPress公式セキュリティアドバイザリ)(外部)
WordPress開発元が発行した公式の技術記録。CVE番号・影響範囲・修正版が正確に記載された一次資料である。

【参考記事】

wp2shell: Pre Authentication RCE in WordPress Core(Searchlight Cyber)(外部)
発見元の公式アドバイザリ。前提条件なしで匿名ユーザーが悪用でき、利用サイトは5億以上と推定。技術詳細を伏せチェッカーを公開した経緯を説明している。

WordPress 7.0.2 Release(WordPress News)(外部)
修正提供元の公式リリースノート。2026年7月17日公開。深刻度から自動更新システム経由の強制更新を有効化したことなどを記載している。

REST API batch-route confusion and SQL injection issue leading to RCE(GitHub Advisory)(外部)
WordPress公式の技術アドバイザリ。影響範囲と修正版、深刻度Criticalを公式に記録した一次資料である。

Important Security Update(Matt Mullenweg)(外部)
WordPress共同創設者の投稿。認証前RCEは23年で数回、前回は記憶では5年前のPHPMailerと振り返る。歴史的発言の典拠。

CVE-2026-63030: wp2shell a Critical RCE in WordPress Core(Rapid7)(外部)
公式GHSAがCriticalと評価と紹介。公表時点ではCVSS 7.5とされたが、その後NVDにWPScan CNAの9.8とCISA-ADPの7.5が併記された。

WP2Shell Vulnerabilities: CVE-2026-60137 and CVE-2026-63030(VulnCheck)(外部)
Patchstackが本件を既知の悪用ありとして掲載したと紹介。何が観測されたかは不明としている。悪用状況の典拠。

wp2shell: A Pre-Authentication RCE in WordPress Core’s REST API(Hadrian)(外部)
攻撃成立後の影響範囲や、正規のREST通信と見分けにくい特性を詳述した独自の技術分析である。

Googleで優先するソースとして追加するボタン
投稿者アバター
山本 達也
『デジタルの窓口』代表。名前の通り、テクノロジーに関するあらゆる相談の”最初の窓口”になることが私の役割です。未来技術がもたらす「期待」と、情報セキュリティという「不安」の両方に寄り添い、誰もが安心して新しい一歩を踏み出せるような道しるべを発信します。 ブロックチェーンやスペーステクノロジーといったワクワクする未来の話から、サイバー攻撃から身を守る実践的な知識まで、幅広くカバー。ハイブリッド異業種交流会『クロストーク』のファウンダーとしての顔も持つ。未来を語り合う場を創っていきたいです。