WordPress Click2Shell flaw lets hackers execute PHP on the server

WordPressのコアコンポーネントに影響を与える、「Click2Shell」と呼ばれる新たなクロスサイトリクエストフォージェリー(CSRF)の脆弱性について、技術的な詳細と概念実証(PoC)エクスプロイトが公開されました。

このセキュリティ問題には公式の識別子は割り当てられていませんが、先週リリースされたWordPressバージョン7.1.1で修正されました。

これは、事前認証を必要とするリモートコード実行の連鎖であり、攻撃者がWordPress.orgの公式カタログにある任意のテーマをインストールし、任意のPHPファイルを実行することを可能にするものです。

自律型ペネトレーションテストプラットフォーム「pwn.ai」のセキュリティ研究者、Paulos Yibelo氏が「Click2Shell」を発見し、8月22日にWordPressに報告した。

研究者らは、「WordPressテーマプレビューURLの値が、一度はWordPress.orgのThemes APIによって解釈され、二度目は管理者のブラウザ内のJavaScriptによるバグのあるメソッドによって解釈される」と説明している。

これにより、攻撃者は管理者が明示的にインストールしなくても、標的のウェブサイトにWordPressテーマを追加することが可能になります。研究者は、テーマが非アクティブ状態であっても、カスタマイザーのプレビュー中にPHPを実行できてしまうことを突き止めました。

なお、攻撃者が認証を必要としない場合でも、Click2Shellのエクスプロイトが機能するためには、ログイン済みの管理者が細工されたURLにアクセスする必要がある点に留意すべきである。

攻撃は、カタログ内の脆弱なテーマをインストールさせるように仕組まれたリンクから始まる可能性があります。カスタマイザーのプレビューで非アクティブなテーマのPHPが読み込まれると、そのコードがサーバー上で実行されます。

この問題を実証するため、pwn.aiは、攻撃者のPHPコードを実行するチェーンの2番目のコンポーネントとして、脆弱性のあるWordPressテーマを使用しました。

研究者の技術レポート全文には、サーバーサイドでのリモートコード実行を実現するための完全な概念実証(PoC)エクスプロイトが記載されています。

この方法でコードを実行することで、ファイルの改ざんや削除、ユーザーデータへのアクセス、さらにはデータベースの認証情報や認証シークレットを含む「wp-config.php」ファイルへのアクセスが可能になる恐れがあります。攻撃者はこのアクセス権を利用して、不正な管理者アカウントを作成したり、悪意のあるスクリプトを注入したりする可能性があります。

Yibelo氏は特定のテーマを使用してClick2Shellを実証しましたが、WordPress Core 7.1.0およびそれ以前のバージョンに存在する根本的な脆弱性を悪用すれば、WordPressカタログ内の他の脆弱なテーマを強制的にインストールすることも可能です。

同研究者は、攻撃者がWordPressアカウントやインストール用ノンス、あるいは自身の管理者権限を必要としないことを指摘している。ただし、Click2Shell攻撃を実行するには、ログイン済みの管理者が仕組まれたリンクにアクセスする必要がある。

WordPressセキュリティ企業PatchstackはClick2Shellを分析し、この一連の攻撃をトリガーできるのは管理者だけであり、「著者」や「編集者」アカウントにはテーマをインストールするための必要な権限がないことを強調している。

同社は、標的型フィッシングや、管理者のブラウザにリクエストを送信させる既存のクロスサイトスクリプティング(XSS)の脆弱性を介して攻撃が可能であると警告した。

WordPressはバージョン7.1.1で、jQueryセレクタで使用する前にテーマのスラグをエスケープし、セレクタを実際のテーマカードに限定することで、このコア脆弱性を修正しました。

すぐにアップデートをインストールできない管理者に対しては、Patchstackは、「DISALLOW_FILE_MODS」が有効になっているウェブサイトでは、テーマや悪意のあるプラグインのインストールが強制されないとしている。

ただし、技術的な詳細やPoCがすでに公開されていることを踏まえると、最新のWordPressバージョンへの切り替えを強く推奨します。