Click2Shellはログイン中の管理者が細工されたリンクを開くと意図しないテーマがインストールされるWordPressコアの脆弱性です。コアの問題だけでサーバー上のコード実行(RCE)に至るわけではなく、インストールされたテーマにも別の脆弱性があるとコード実行までつながります。
WordPress 7.1.1で修正されましたが2026年9月22日には別の重大な脆弱性を修正した7.1.2も公開されています。これから更新するなら、7.1.2以降を選んでください。
Click2Shellとは?
Click2Shell(クリック・トゥ・シェル)はセキュリティ企業のpwn.aiが報告して名付けた攻撃チェーンです。入口になるのはWordPressコアの脆弱性。条件がそろうと最終的にはサーバー上でPHPコードが実行されるところまでを含めてこの名前で呼ばれています。
WordPress公式のリリース記事には細工されたURLによってWordPress.orgのテーマが自動でインストール・プレビューされる問題として記載されています。この説明だけではどの段階でコード実行につながるのかが見えにくいところですね。
| 項目 | 内容 |
|---|---|
| 修正されたバージョン | WordPress 7.1.1(2026年9月17日公開) |
| 問題の場所 | WordPressコア(テーマ画面のJavaScript) |
| 攻撃に必要なこと | ログイン中の管理者が細工されたリンクを開く |
| 報告者 | pwn.ai |
| 深刻度 | WordPressは未公表、pwn.aiは単体を「高」(CVSS 7.1)、コード実行までの全体を「重大」と評価 |
| CVE番号 | 9月21日時点の報道では未割り当て |
| 実際の攻撃 | 確認できた範囲では報告なし、PoC(実証コード)を含む技術詳細は9月18日に公開済み |
攻撃はどう進む?
図の赤い部分がWordPressコアの問題です。紫の部分に進むにはテーマ側にも別の脆弱性が必要です。


同じ値を2か所で別々に読んでいた
WordPressの管理画面にはURLでテーマ名を指定してプレビューやインストールを始められる画面があります。このURLに含まれるテーマ名をサーバー側と管理者のブラウザ側で別々に処理していたことが問題でした。
たとえば、テーマ名に記号が付いたURLを考えます。
正しいテーマ名は「sample-theme」
攻撃者は「sample-theme!」というURLでクリックさせる
↓
記号の!を取り除きsample-themeというテーマを探す。
↓
↓
sample-theme!をそのまま画面上の対象を探すための文字列に組み込む。
↓
ざっくり言うと、サーバーはその値を「テーマ名」として読み、ブラウザは「どのボタンを押すか」という指示にも使っていました。値に記号を混ぜて細工すると、ブラウザ側の指示がテーマカード内の「Install」ボタンを指すようになります。その結果、WordPress自身のスクリプトがボタンをクリックしてしまいます。
7.1.1では記号を指示として解釈させないように値をエスケープし、対象を実際のテーマカードに限定しました。
なぜ管理者のログインが必要なのか
テーマのインストールには「インストール権限」と「操作が正規のものだと示すセキュリティトークン(nonce)」が必要です。ログイン中の管理者のセッションにはその両方がそろっています。攻撃者はそれらを盗む代わりに管理者のブラウザで動くWordPress自身のスクリプトに使わせます。
ログイン中の本人に意図しない操作をさせる攻撃をCSRF(クロスサイトリクエストフォージェリ)と呼びます。管理者がログインした状態で細工されたリンクを開くことが前提ですが、攻撃者がWordPressのアカウントを持つ必要はありません。
Patchstackはリンクを開かせる経路として「特定の管理者を狙ったフィッシング」と「サイト内にすでにあるXSS(不正なスクリプトを埋め込まれる脆弱性)」を挙げています。後者は攻撃者がすでに別の足がかりを持っているケースです。
サイトの見た目は変わらない
テーマはインストールされても有効化されないためサイトの見た目は変わりません。pwn.aiも攻撃中は元のテーマが有効なままだと説明しています。
とはいえ、使っていないテーマを放置してよいわけではありません。WordPressはカスタマイザーでプレビューするとき、有効化前のテーマのPHPを読み込むことがあります。今回の攻撃チェーンはこの動きからテーマ側の脆弱性につながります。
「1クリックでRCE」に至る条件
「1クリックでRCE」という表現はテーマ側の脆弱性まで重なった場合を指します。段階ごとの違いは次のとおりです。
| 段階 | 起きること | 必要な条件 |
|---|---|---|
| コアの問題だけ | 公式ディレクトリにある実在のテーマが、有効化されないままインストールされる | ログイン中の管理者が細工されたリンクを開く(7.1.1より前のバージョン) |
| コード実行(RCE)まで | 攻撃者のPHPコードがサーバー上で実行される | 上の条件に加えて、インストールされたテーマ側に別の脆弱性がある |
pwn.aiが実証した攻撃では、まず公式ディレクトリのテーマを自動でインストールさせました。続いてカスタマイザーでそのテーマをプレビューさせ、まだ有効化していないテーマのPHPを読み込ませています。そのテーマにあった別の不備を使い、攻撃者が指定したプラグインのPHPを実行しました。テーマが入っただけでコード実行が始まるわけではなく、コアの問題だけでも任意のPHPコードは実行されません。
pwn.aiによるとコアの脆弱性を使って任意のテーマZIPを送り込むこともできません。インストールされるのは公式ディレクトリにある現行のテーマです。その中から別の脆弱性を持つテーマが攻撃に使われます。
pwn.aiは当時のMobile Repair Zone 2.5.4で攻撃を実証しました。このテーマには権限やnonceを確認せず、指定されたURLからZIPを取得して読み込む処理がありました。pwn.aiは同種の問題がほかの40以上のテーマにも見つかったと報告しています。Mobile Repair Zoneが現在も同じ状態かどうかは確認できていません。
Author(投稿者)やEditor(編集者)のアカウントにはテーマをインストールする権限がありません。Patchstackもこの攻撃チェーンを起動できるのは管理者だけだと説明しています。
影響を受けるバージョンと修正版
pwn.aiはWordPress 7.1.1より前のバージョンを対象としています。WordPressは古い系統にも修正版を出しており、主な系統では次のようになります。
| 使っている系統 | Click2Shellが直った版 | 9月24日時点で入れたい版 |
|---|---|---|
| 7.1 | 7.1.1 | 7.1.2 |
| 7.0 | 7.0.5 | 7.0.6 |
| 6.9 | 6.9.8 | 6.9.9 |
| 6.8 | 6.8.9 | 6.8.10 |
| 6.7 | 6.7.8 | 6.7.9 |
右の列は9月22日の7.1.2と同時に公開された、各系統の最新の修正版です。6.6以前の系統の修正版も公式の7.1.1のバージョン解説ページに載っています。
影響を受ける古い系統の範囲は報道によって書き方が異なります。6.0以降とする記事もあれば、7.1.1より前のすべてとする記事もあります。使っている系統に修正版が出ているなら、その最新版まで更新してください。
WordPressを更新する手順
現在のバージョンを確認する
管理画面の「ダッシュボード」→「更新」、または「ツール」→「サイトヘルス」→「情報」タブでバージョンを確認します。7.1系なら7.1.2、ほかの系統なら前の表の右の列にある版になっているかを見てください。
SSHで入れる環境なら、WP-CLIでも確認できます。
wp core versionバックアップを取って更新する
データベースとwp-contentをバックアップしてから「ダッシュボード」→「更新」の案内に沿って更新します。WP-CLIが使える環境ならコマンドでも更新できます。
wp core update更新後のバージョンを確かめる
マイナー更新やセキュリティ更新は初期設定では自動で適用されます。ただ、設定やサーバー側の都合で止まることもあります。自動更新に任せている場合も、Step 1と同じ画面で実際のバージョンを確認してください。
自動更新をオフにしたつもりなのにWordPressが更新された場合はマイナー更新とセキュリティ更新の扱いを確認してみてください。設定ごとの動きは以下の記事で説明しています。


更新後はテーマとユーザーも確認する
WordPress本体を更新してもそれ以前にインストールされたテーマや作られたユーザーが自動で消えるわけではありません。Click2Shellではサイトの見た目が変わらないため、管理画面でも次を確認してください。
- 「外観」→「テーマ」に入れた覚えのないテーマがないか。
- 「プラグイン」と「ユーザー」に覚えのないプラグインや管理者がいないか。
- 使っていないテーマは削除しておく。親テーマや子テーマ、予備の標準テーマは残す。
- 管理画面にログインしたまま知らないリンクを開かない。
使っていないテーマも確認するのは、有効化前であっても、プレビューなどでPHPが読み込まれることがあるためです。
アクセスログが残っていればtheme-install.phpへのリクエストを調べtheme=に普通のテーマ名には入らない記号が並んでいないかを探す方法もあります。細工したURLにはそうした記号が必要になるためです。ただ、これは公式が示した確認方法ではありません。ログに見つからなかったとしても攻撃がなかったとは断定できません。
覚えのないテーマや管理者が見つかった場合は削除する前に状態を記録してください。確認する順序やファイル・アクセスログの調べ方は以下の記事で詳しく整理しています。


迷いやすいポイント
まとめ
- Click2Shellは、ログイン中の管理者が細工されたリンクを開くと、有効化されないテーマが勝手に入るコアの脆弱性だよ。
- コア単独ではRCEにならなくて、インストールされたテーマ側の別の脆弱性が重なったときに、コード実行まで進むよ。
- 更新は7.1.1で止めずに、7.1.2(使っている系統の最新の修正版)まで上げてね。
- 更新後は「外観」→「テーマ」に、覚えのないテーマがないかを見ておいてね。





