Les pirates exploitent la faille du plugin WordPress qui donne le contrôle total de millions de sites

Les pirates exploitent activement une vulnérabilité critique dans un plugin WordPress largement utilisé qui leur donne la possibilité de prendre le contrôle complet de millions de sites, ont déclaré des chercheurs.

La vulnérabilité, qui porte un indice de gravité de 8,8 sur 10 possibles, est présente dans Elementor Pro, un plugin premium fonctionnant sur plus de 12 millions de sites alimentés par le système de gestion de contenu WordPress. Elementor Pro permet aux utilisateurs de créer des sites Web de haute qualité à l’aide d’une large gamme d’outils, dont WooCommerce, un plugin WordPress distinct. Lorsque ces conditions sont remplies, toute personne disposant d’un compte sur le site, par exemple un abonné ou un client, peut créer de nouveaux comptes dotés de privilèges d’administrateur complets.

La vulnérabilité a été découverte par Jérôme Bruandet, un chercheur de la société de sécurité NinTechNet. La semaine dernière, Elementor, le développeur du plugin Elementor Pro, a publié la version 3.11.7, qui a corrigé la faille. Dans un billet publié mardi, Bruandet a écrit :

Un attaquant authentifié peut exploiter la vulnérabilité pour créer un compte administrateur en activant l’enregistrement (users_can_register) et en définissant le rôle par défaut (default_role) en « administrateur », modifiez l’adresse e-mail de l’administrateur (admin_email) ou, comme indiqué ci-dessous, redirigez tout le trafic vers un site Web malveillant externe en modifiant siteurl parmi de nombreuses autres possibilités :

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)

Maintenant, des chercheurs d’une société de sécurité distincte, PatchStack, signalent que la vulnérabilité est exploitée activement. Les attaques proviennent de diverses adresses IP, notamment :

  • 193.169.194.63
  • 193.169.195.64
  • 194.135.30.6

Les fichiers téléchargés sur des sites compromis portent souvent les noms suivants :

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

Les URL des sites compromis sont souvent remplacées par :

  • loin[dot]trackersline[dot]com

La vulnérabilité de contrôle d’accès cassé provient de l’utilisation par Elementor Pro du composant « elementor-pro/modules/woocommerce/module.php ». Lorsque WooCommerce est en cours d’exécution, ce script enregistre les actions AJAX suivantes :

/**
 * 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' ] );
}

et

/**
 * 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'] );
}

La fonction update_option « est censée permettre à l’administrateur ou au responsable de la boutique de mettre à jour certaines options WooCommerce spécifiques, mais les entrées de l’utilisateur ne sont pas validées et la fonction n’a pas de vérification de capacité pour restreindre son accès à un utilisateur hautement privilégié uniquement », a expliqué Bruandet. Il a continué:

Elementor utilise son propre gestionnaire AJAX pour gérer la plupart de ses actions AJAX, y compris pro_woocommerce_update_page_optionavec le monde elementor_ajax action. Il se trouve dans le script « elementor/core/common/modules/ajax/module.php » de la version gratuite (nécessaire pour exécuter 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 );
   }
   ...

Toute personne utilisant Elementor Pro doit s’assurer qu’elle exécute la version 3.11.7 ou une version ultérieure, car toutes les versions précédentes sont vulnérables. C’est également une bonne idée pour ces utilisateurs de vérifier sur leurs sites les signes d’infection répertoriés dans le message PatchStack.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*