ハッカーは、何百万ものサイトを完全に制御できる WordPress プラグインの欠陥を悪用します

Date:

Share post:


ハッカーは、何百万ものサイトを完全に制御できる WordPress プラグインの欠陥を悪用します

ゲッティイメージズ

ハッカーは、広く使用されている WordPress プラグインの重大な脆弱性を積極的に悪用しており、何百万ものサイトを完全に制御できるようになっている、と研究者は述べています。

この脆弱性の深刻度は 10 段階中 8.8 で、Elementor Pro に存在します。 プレミアムプラグイン WordPress コンテンツ管理システムにより、1,200 万以上のサイトで実行されています。 Elementor Pro を使用すると、ユーザーはさまざまなツールを使用して高品質の Web サイトを作成できます。そのうちの 1 つは別の WordPress プラグインである WooCommerce です。 これらの条件が満たされると、サイトにアカウントを持っている人 (購読者や顧客など) は誰でも、完全な管理者権限を持つ新しいアカウントを作成できます。

この脆弱性は、セキュリティ会社 NinTechNet の研究者である Jerome Bruandet によって発見されました。 先週、Elementor Pro プラグインの開発者である Elementor は、 リリース 欠陥にパッチを当てたバージョン 3.11.7。 で 役職 火曜日に公開された Bruandet は次のように書いています。

認証された攻撃者は、この脆弱性を利用して、登録を有効にすることで管理者アカウントを作成できます (users_can_register) およびデフォルトの役割の設定 (default_role) を「管理者」に変更し、管理者のメール アドレス (admin_email) または、以下に示すように、すべてのトラフィックを外部の悪意のある Web サイトにリダイレクトします。 siteurl 他の多くの可能性の中で:

MariaDB [example]> SELECT * FROM `wp_options` WHERE `option_name`='siteurl';
+-----------+-------------+------------------+----------+
| option_id | option_name | option_value     | autoload |
+-----------+-------------+------------------+----------+
|		 1 | siteurl     | https://evil.com | yes 	 |
+-----------+-------------+------------------+----------+
1 row in set (0.001 sec)

現在、別のセキュリティ会社 PatchStack の研究者は、 報告 脆弱性が積極的に悪用されていること。 攻撃は、次のようなさまざまな IP アドレスから行われています。

  • 193.169.194.63
  • 193.169.195.64
  • 194.135.30.6

侵害されたサイトにアップロードされたファイルには、多くの場合、次の名前が付いています。

  • wp-resortpack.zip
  • wp-rate.php
  • lll.zip

侵害されたサイトの URL は、多くの場合、次のように変更されています。

  • あちらへ[dot]トラッカーライン[dot]コム

壊れたアクセス制御の脆弱性は、Elementor Pro が「elementor-pro/modules/woocommerce/module.php」コンポーネントを使用することに起因します。 WooCommerce の実行中、このスクリプトは次の AJAX アクションを登録します。

/**
 * Register Ajax Actions.
 *
 * Registers ajax action used by the Editor js.
 *
 * @since 3.5.0
 *
 * @param Ajax $ajax
 */
public function register_ajax_actions( Ajax $ajax ) {
   // `woocommerce_update_page_option` is called in the editor save-show-modal.js.
   $ajax->register_ajax_action( 'pro_woocommerce_update_page_option', [ $this, 'update_page_option' ] );
   $ajax->register_ajax_action( 'pro_woocommerce_mock_notices', [ $this, 'woocommerce_mock_notices' ] );
}

/**
 * Update Page Option.
 *
 * Ajax action can be used to update any WooCommerce option.
 *
 * @since 3.5.0
 *
 * @param array $data
 */
public function update_page_option( $data ) {
   update_option( $data['option_name'], $data['editor_post_id'] );
}

update_option 関数は、「管理者またはショップ マネージャーが特定の WooCommerce オプションを更新できるようにすることを想定していますが、ユーザー入力は検証されておらず、関数には権限の高いユーザーのみにアクセスを制限する機能チェックがありません」と Bruandet は説明しました。 彼は続けた:

Elementor は独自の AJAX ハンドラーを使用して、AJAX アクションのほとんどを管理します。 pro_woocommerce_update_page_option、グローバル elementor_ajax アクション。 これは、無料版の「elementor/core/common/modules/ajax/module.php」スクリプトにあります (Elementor Pro を実行するために必要です)。

/**
 * Handle ajax request.
 *
 * Verify ajax nonce, and run all the registered actions for this request.
 *
 * Fired by `wp_ajax_elementor_ajax` action.
 *
 * @since 2.0.0
 * @access public
 */
public function handle_ajax_request() {
   if ( ! $this->verify_request_nonce() ) {
  	$this->add_response_data( false, esc_html__( 'Token Expired.', 'elementor' ) )
     	->send_error( Exceptions::UNAUTHORIZED );
   }
   ...

以前のバージョンはすべて脆弱であるため、Elementor Pro を使用している人は、3.11.7 以降を実行していることを確認する必要があります。 これらのユーザーが、PatchStack の投稿に記載されている感染の兆候についてサイトをチェックすることもお勧めします。