WordPressで新たに公表された「Click2Shell」と呼ばれる脆弱性により、攻撃者が脆弱なサイト上でリモートPHPコードを実行できる可能性があることがわかりました。ログイン中の管理者を特別に細工されたリンクのクリックへと誘導することで悪用されます。
2026年9月17日にリリースされたWordPressバージョン7.1.1で、この問題は修正されています。PWNAIの研究者によると、この脆弱性はWordPressのテーマプレビュー機能を悪用し、WordPress.org公式ディレクトリからテーマを気づかれないままインストールさせるものです。
この強制インストールが、脆弱なテーマに存在する別の脆弱性と組み合わされると、サイトが完全に乗っ取られる恐れがあります。
WordPressは、7.1.1のメンテナンス・セキュリティリリースに含まれる11件のセキュリティ修正の一つとしてこの不具合を特定しました。特別に細工されたURLによって、WordPress.org上の非アクティブなテーマが自動的にインストールされ、プレビューされてしまう脆弱性だと説明されています。研究成果の公表時点では、CVE識別子はまだ割り当てられていませんでした。
Click2Shellの仕組み
この問題の根本原因は、WordPressのテーマインストーラーが使用するテーマパラメータの処理に一貫性がないことにあります。管理者が通常のテーマプレビューURLを開くと、WordPressはWordPress.orgのテーマAPIに該当テーマを問い合わせ、プレビューを表示します。
PWN AIの研究者によれば、サーバー側APIは指定された値を正規のテーマスラッグへと正規化する一方、ブラウザ側のJavaScriptはjQueryセレクタを構築する際にURLから渡された元の値をそのまま保持してしまうといいます。
攻撃者はこの値にセレクタ構文を注入できます。APIはリクエストを正規のカタログ上のテーマへと解決しますが、不正な形式のクライアント側セレクタは、テーマカード上の本物のインストールコントロールと干渉し得ます。すると、WordPressのJavaScriptがそのコントロールへのクリックをプログラム的に発生させてしまいます。
その結果、認証済みの管理者は、手動で「インストール」や「有効化」をクリックすることなく、攻撃者が選んだテーマ(WordPress.orgで正式にホストされているもの)をインストールさせられてしまう可能性があります。
この一連の処理は、WordPressのインターフェース自体を通じて、管理者のアクティブなセッション、権限、インストール用ナンスを利用して行われます。
インストールされたテーマは非アクティブのままのため、サイトの見た目は変わりません。この隠密性の高さゆえに、管理者は不審な動きに気づきにくくなる可能性があります。
この強制インストールの問題だけでは、任意のテーマをアップロードできるわけではなく、あくまでWordPress.orgの公式テーマカタログにあるパッケージをインストールできるにすぎません。しかし、PWNAIは非アクティブなテーマであってもセキュリティ上の脆弱性を抱え得ることを実証しました。
脆弱性データベースアクセス
WordPressは、カスタマイザーのプレビューを処理する際に、非アクティブなテーマのfunctions.phpファイルを読み込むことがあります。報告された概念実証(PoC)では、研究者らはMobile Repair Zoneテーマのバージョン2.5.4を使用しました。このテーマには、適切なナンス検証や権限チェックを欠いたAJAXベースのプラグインインストール機能が存在していたとされています。
カスタマイザーのリクエスト処理中にこのPHPコードが実行されると、脆弱なテーマは攻撃者が用意したプラグインパッケージを取得・展開・読み込みできてしまいます。これにより、WordPress Coreの強制インストール機構が、WordPressのWebサーバープロセスの権限でサーバー側のPHPコードを実行する手段へと変貌します。
攻撃が成功すれば、攻撃者はWordPressの設定データやデータベースの認証情報にアクセスし、管理者アカウントを新規作成し、サイトのコンテンツを改ざんし、マルウェアを配布し、WooCommerceやプラグインのデータにアクセスし、さらにはホスティング環境そのものを制御下に置く可能性さえあります。
パッチと対策
WordPress 7.1.1では、URLから取得したスラッグをjQueryセレクタ構文に挿入する前にエスケープ処理することで、脆弱なセレクタ構築の問題に対処しています。また、正規のテーマカード要素のみにマッチするよう制限を加え、注入されたセレクタ文字が「インストール」ボタンへ到達できないようにしています。
管理者は速やかにWordPress Coreをバージョン7.1.1以降に更新すべきです。サイト運営者は、インストール済みのテーマ、特に未使用または非アクティブなものを確認し、不要なパッケージを削除することも推奨されます。
その他の防御策としては、WordPress管理者アカウントの監査、テーマ・プラグインのインストールログの確認、最近変更されたファイルのレビュー、そしてすべての管理者向けAJAXアクションでナンスチェックと権限検証が確実に行われるようにすることが挙げられます。
今回の研究は、WordPressにおけるより広範なセキュリティ上の懸念を浮き彫りにしています。非アクティブなテーマは必ずしも無害ではないということです。プレビューやカスタマイズのワークフローを通じてPHPが読み込まれ得るのであれば、有効化されていないテーマ内の脆弱なコードであっても、サイトを完全に乗っ取る攻撃経路を攻撃者に与えかねません。
SOCのアラート調査ごとに21分を削減。即座のIOCコンテキストでSOCの即応力を強化: TI LookupをSOCに統合する
翻訳元: https://gbhackers.com/click2shell-wordpress-flaw/