PHP Everywhereプラグイン、リモートコード実行の脆弱性が発見される:数千のWordPressサイトに存在か

世界中の3万以上のウェブサイトで使用されているWordPress用プラグイン「PHP Everywhere」に、3つの重大なリモートコード実行(RCE)の脆弱性があることを研究者が発見しました。

https://www.wordfence.com/blog/2022/02/critical-vulnerabilities-in-php-everywhere-allow-remote-code-execution/

2022年1月4日、Wordfence Threat Intelligenceチームは、30,000以上のウェブサイトにインストールされているWordPressプラグイン「PHP Everywhere」に存在する複数のリモートコード実行脆弱性の責任ある公開プロセスを開始しました。これらの脆弱性のうち1つは、サブスクライバーやカスタマーを含むあらゆるレベルの認証済みユーザーが、プラグインがインストールされたサイト上でコードを実行できるというものでした。この脆弱性は重大な問題であるため、私たちはプラグインの作者に働きかけを行うとともに、WordPressのプラグインリポジトリに情報を開示しました。

PHP Everywhereは、WordPressの管理者がページ、投稿、サイドバー、GutenbergブロックにPHPコードを挿入し、それを使って評価されたPHP式に基づいて動的コンテンツを表示することができるプラグインです。

3つのRCEの欠陥

この3つの脆弱性は、Wordfence社のセキュリティアナリストによって発見されたもので、コントリビューターユーザまたはサブスクライバーユーザによって悪用される可能性があり、2.0.3以下のすべてのWordPressのバージョンに影響を与えます。

それぞれの脆弱性の概要は以下のとおりです。

  • CVE-2022-24663 – 任意の購読者ユーザが、「shortcode」パラメータを設定したリクエストを PHP Everywhere に送信し、サイト上で任意の PHP コードを実行することで、リモートコード実行の脆弱性が悪用することができる。(CVSS v3 スコア: 9.9)
  • CVE-2022-24664 – プラグインの metabox を介して投稿者が悪用できる RCE 脆弱性。攻撃者は、投稿を作成し、PHP コードの metabox を追加した後、プレビューを行うことができる。(CVSS v3 スコア: 9.9)
  • CVE-2022-24665 – RCE の脆弱性は、’edit_posts’ 権限を持つ投稿者が PHP Everywhere Gutenberg ブロックを追加することで悪用可能。脆弱なプラグインのバージョンでは、デフォルトのセキュリティ設定が本来あるべき「管理者のみ」になっていない。(CVSS v3 スコア: 9.9)

最後の2つの脆弱性は、投稿者レベルの権限を必要とするため、簡単には悪用できませんが、最初の脆弱性はサイトの購読者であるだけで悪用できるため、より広範囲に渡って悪用される可能性があります。

例えば、サイトにログインしている顧客は「購読者」とみなされるため、対象プラットフォームに登録しただけで、悪意のあるPHPコードを実行するのに十分な権限を得ることができます。

いずれの場合も、サイト上で任意のコードを実行すると、サイトの完全な乗っ取りにつながる可能性があり、これはWebサイトのセキュリティにおける最悪のシナリオです。

ブロックエディタのみの修正

Wordfence社のチームは、2022年1月4日にこの脆弱性を発見し、「PHP Everywhere」の作者にその旨を伝えました。

ベンダーは2022年1月10日にセキュリティアップデートをリリースし、バージョン3.0.0をリリースしましたが、大幅なコードの書き換えが必要だったため、大きくバージョン番号が上がってしまいました。

開発者は先月アップデートを修正しましたが、管理者がWordPressサイトやプラグインを定期的に更新していないことは珍しくありません。

WordPress.orgのダウンロード統計によると、バグが修正されてからプラグインをアップデートしたのは、30,000件中15,000件のインストールに過ぎません。

したがって、これらの脆弱性の深刻さから、PHP Everywhereのすべてのユーザーは、現時点で最新のPHP Everywhereバージョン3.0.0にアップグレードしていることを確認するよう強くお勧めします。

なお、サイトでClassic Editorを使用している場合は、プラグインをアンインストールし、そのコンポーネント上でカスタムPHPコードをホストするための別のソリューションを見つける必要があります。

というのも、バージョン3.0.0はBlockエディタ経由でのPHPスニペットしかサポートしておらず、作者がClassic用に機能を回復する作業をする可能性は低いからです。

コメントを残す

メールアドレスが公開されることはありません。