概要
WordPressコア自体に、未認証の攻撃者が任意コードを実行できる深刻な脆弱性チェーン「wp2shell」が発見され、世界のウェブサイトの相当数を占める約5億サイトに影響する可能性があることが明らかになった。プラグインを一切使わないデフォルト環境でも悪用可能な点が特に深刻で、WordPressは7月18日以降、6.9.5・7.0.2・6.8.6の緊急アップデートを自動更新の形で強制配信する異例の対応を取った。すでにGitHub上には実際に動作するプルーフオブコンセプト(PoC)が複数公開されており、パスワードハッシュの抽出から悪意あるプラグインの実行まで可能なことが確認されている。
技術的な詳細
wp2shellは単一の脆弱性ではなく、2つの問題が連鎖することで「匿名リクエストからコード実行まで」を実現する複合的な攻撃チェーンである。
1つ目は、REST APIのバッチ処理エンドポイント/wp-json/batch/v1に存在する「バッチルート混同」の脆弱性(CVE-2026-63030、CVSS 9.8)。バッチ処理エンドポイント自体は2020年公開のWordPress 5.6から存在するが、WordPress 6.9で新たに生じたこの脆弱性は、複数のサブリクエストをまとめて処理する際にエラーが発生すると、内部で管理している2つの並列配列がずれてしまい、本来とは異なるハンドラーの下でリクエストが処理されてしまうというルート検証の不同期化バグである。これにより、本来アクセスできないはずの機能へのアクセス制限がバイパスされる。
2つ目は、WordPressコアのSQLインジェクション脆弱性(CVE-2026-60137)。WP_Queryのauthor__not_inパラメータに配列ではなく文字列を渡すと、本来行われるはずの配列チェックがスキップされ、未フィルタリングの値がそのままSQLクエリに挿入されてしまう。
この2つを組み合わせることで、未認証の攻撃者がSQLインジェクションを起点にサイトを制御下に置き、最終的に任意コードの実行(RCE)にまで到達できてしまう。影響範囲はバージョンによって異なり、WordPress 6.8.0〜6.8.5ではSQLインジェクションのみが存在する(6.8.6で修正)のに対し、バッチルート機能を含む6.9.0〜6.9.4および7.0.0〜7.0.1では完全なRCEチェーンが成立する(それぞれ6.9.5、7.0.2で修正)。
対応状況と推奨される対策
WordPressは7月18日以降、影響を受ける全バージョン向けに緊急パッチを自動更新機能を通じて強制的に配信した。開発版である7.1のベータ2にも両方の修正が反映されている。サイト管理者は自動更新が正常に完了しているかを確認するとともに、手動での即時アップデートが強く推奨される。
即座にアップデートできない場合の一時的な緩和策としては、REST APIへの匿名アクセスをブロックする、あるいはWAF(Web Application Firewall)で/wp-json/batch/v1エンドポイントへのアクセスをフィルタリングする方法が挙げられている。Cloudflareはすでに全プランでこの脆弱性に対するWAF保護を展開済みとしている。また、パッチ適用が遅れたサイトについては、バックドアの設置など侵害の痕跡がないか確認することも推奨されている。
なお、悪用状況については情報源によって温度差がある。BleepingComputerやCyberInsiderは実際の悪用(in-the-wild exploitation)が既に確認されていると報じる一方、The Hacker Newsは本記事時点でCISAの既知悪用脆弱性(KEV)カタログには掲載されておらず、確認された悪用報告はないとしている。いずれにせよ、攻撃チェーンの詳細と動作するPoCが既に公開されている以上、悪用の拡大は時間の問題とみられ、未パッチのサイトは早急な対応が求められる。