WordPressの「Click2Shell」脆弱性、細工したURLからテーマを強制導入しコード実行の恐れ

2026年9月22日 16:46

自己ホスト型WordPressを運用するサイト管理者は、利用中の系列にClick2Shellの修正が適用されているか確認する必要がある。ログイン中の管理者が細工されたURLを開くと、WordPress.org公式ディレクトリーのテーマが本人の操作なしにインストールされ、別のテーマ脆弱性との連鎖でサーバー上のPHPコードを実行される恐れがある。

WordPressは2026年9月17日、この問題を含む11件のセキュリティ修正を盛り込んだWordPress 7.1.1を公開した。脆弱性を発見したセキュリティ調査企業pwn.aiは翌18日、攻撃チェーンの詳細と概念実証を公表し、「Click2Shell」と名付けた。9月18日の開示時点では、実際の攻撃への悪用は確認されていなかった。

■URLからコード実行へ至る攻撃チェーン

Click2Shellの起点は、WordPressのテーマインストーラーがURL内の同じ値を複数の方法で解釈することにある。WordPress.orgのテーマAPIはその値を通常のテーマスラッグとして処理する一方、管理者のブラウザーでは、元の文字列がjQueryのセレクターとして使われる。

攻撃者がセレクターとして意味を持つ文字をURLへ埋め込むと、ブラウザー側の処理がテーマカード内の[インストール]操作へ誘導される。WordPress自身のJavaScriptが正規のインストール処理を実行するため、管理者は[インストール]や[有効化]を押していなくても、公式ディレクトリーの実在するテーマを導入させられる可能性がある。

攻撃者はテーマを自由なZIPファイルとしてアップロードできるわけではなく、WordPress.org公式ディレクトリーに掲載されているテーマを選ぶ必要がある。インストールに必要な権限とnonceは、ログイン中の管理者のセッションとWordPressの管理画面が提供するため、攻撃者が認証情報やトークンを盗む必要はない。

インストールされたテーマは有効化されず、サイトの表示にも変化が生じない。しかし、WordPressのカスタマイザーでテーマをプレビューすると、有効化前でもfunctions.phpなどのPHPコードが読み込まれる。この仕組みに、テーマ側の別の脆弱性を組み合わせることで、サーバー上のコード実行へ攻撃を進められる。

■実証に使われたMobile Repair Zone

pwn.aiは概念実証で、当時WordPress.orgに掲載されていたMobile Repair Zone 2.5.4の脆弱性を利用した。このテーマには、nonceや呼び出し元の権限を確認せず、指定されたURLからプラグインパッケージを取得、展開し、PHPコードを読み込むAJAXハンドラーが含まれていた。

細工されたURLでテーマをインストールし、カスタマイザーでそのPHPコードを読み込ませた後、このハンドラーを呼び出すと、攻撃者が指定したパッケージをサーバー上で実行できる。Click2Shellは、WordPressコアの強制インストール問題と、テーマ側の別の実装不備を連鎖させる攻撃である。

pwn.aiは、Mobile Repair Zone以外にも、同様に悪用できる問題を40件を超える第三者テーマで確認したとしている。したがって、このテーマを使用していないことだけでは、脆弱なWordPressコアを放置してよい理由にはならない。

一方、WordPressコアを更新してテーマの強制インストール経路を閉じれば、この攻撃チェーンの起点を遮断できる。テーマやプラグインに残る認証・権限確認の不備は、Click2Shellとは別に対処すべき継続的なリスクとなる。

■管理者のログイン状態を悪用

Click2Shellによる一連の攻撃に、盗まれたパスワードや侵害済みのWordPressアカウントは必要ない。攻撃の成立には、テーマをインストールできる権限を持つ管理者がログインした状態で、細工されたURLを開くことが必要となる。

このため、攻撃者はフィッシングメールやメッセージ、フォーラムへの投稿などを使い、管理者をURLへ誘導すると考えられる。URLを開いた後にインストール確認を求められるとは限らず、テーマが未有効化のまま残るため、サイト運用者が異変に気づきにくい。

WordPressのnonceは、外部の攻撃者が認証済み操作を直接偽造することを防ぐための仕組みである。しかしClick2Shellでは、正規の管理画面にあるnonceと管理者の権限をWordPress自身のJavaScriptが使用するため、nonceを盗んだり推測したりする必要がない。

pwn.aiはWordPressコアの問題単体をCVSS 7.1の「重要」と評価している。ただし、この数値はテーマ側の脆弱性と組み合わせてコード実行へ至る影響を単独で表したものではない。脆弱性管理では、個別のスコアだけでなく、別の欠陥との連鎖や必要な利用者操作も含めて優先度を判断する必要がある。

■WordPress 7.1.1と各系列の修正版

WordPress 7.1.1は、細工されたURLによってWordPress.orgから未有効化テーマを自動的にインストールし、プレビューできる問題を修正したセキュリティリリースである。WordPress公式は、利用サイトを直ちに更新するよう呼びかけている。

セキュリティ修正は、対象となる旧系列にも順次バックポートされている。このため、対策をWordPress 7.1.1への更新だけに限定せず、利用している系列で公開された修正版が適用されているかをWordPress公式情報で確認する必要がある。可能であれば、現在サポートされている最新リリースを利用することが望ましい。

自動バックグラウンド更新に対応しているサイトでは、更新処理が自動的に始まる。ただし、更新機能が無効になっている環境や、バージョン管理されたファイル、コンテナーイメージから展開している環境では、自動更新が反映されないことがある。管理画面や運用環境で、実際のバージョンを確認すべきである。

WordPress公式は7.1.1でClick2Shell以外にも10件のセキュリティ問題を修正した。今回の問題だけを個別に回避するより、利用中の系列に提供されたセキュリティ更新を適用することが基本的な対策となる。

■サイト運用者が確認すべきこと

最優先の対応は、WordPressコアを利用中の系列に対応する修正版へ更新することである。WordPress 7.1系列では7.1.1以降を使用し、旧系列を継続する場合は、Click2Shellの修正を含むバックポート版が導入されているか確認する。

Mobile Repair Zone 2.5.4がインストールされている場合は、修正版が提供されていれば更新し、不要なら削除する必要がある。WordPressコアを更新しても、テーマ側の保護されていないAJAXハンドラーそのものが安全になるわけではない。

[外観]の[テーマ]画面を開き、管理者が導入した覚えのない未有効化テーマが存在しないかも確認したい。Click2Shellの強制インストールが成功しても、現在使用中のテーマは切り替わらないため、見知らぬテーマが唯一の目立った痕跡になる場合がある。

不審なテーマが見つかった場合は、削除だけで対応を終えず、アクセスログ、管理者アカウント、追加されたプラグイン、PHPファイルの更新履歴などを調べ、コード実行や改ざんに至っていないか確認する必要がある。侵害の可能性を否定できない場合は、バックアップを確保したうえで、セキュリティ担当者やホスティング事業者へ調査を依頼することが望ましい。

元記事: WordPress Click2Shell Flaw Silently Installs Themes via Crafted Admin Link

関連記事

最新記事