Le 18 février, nous avons été alertés d’une vulnérabilité présente dans Addons ThemeREX, un plugin WordPress installé sur environ 44 000 sites. Nous avons pris des mesures immédiates pour publier une règle de pare-feu pour protéger les utilisateurs de Wordfence Premium. Comme cette vulnérabilité était activement attaquée, nous avons également notifié publiquement la communauté de la vulnérabilité pour aider à protéger les utilisateurs contre les compromissions.

En tant que mise à jour de cette notification, nous sommes heureux de partager que ThemeREX a publié des mises à jour pour tous leurs thèmes, y compris le plugin vulnérable Addons ThemeREX. Dans la publication d’aujourd’hui, nous fournissons les détails techniques de la vulnérabilité ainsi que les étapes à suivre pour vous assurer que votre site exécute une version mise à jour du plug-in.

Analyse plus approfondie du problème

Comme indiqué précédemment, le plugin ThemeREX Addons a été conçu comme un plugin compagnon pour une variété de thèmes ThemeREX. Il fournit plusieurs fonctionnalités et widgets améliorant le thème pour étendre les fonctionnalités de ces thèmes.

Le code vulnérable était présent dans le fichier ~ / includes / plugin.rest-api.php, où il y avait quelques problèmes. Afin d’assurer la compatibilité avec le plugin Gutenberg, le plugin ThemeREX Addons a enregistré un point de terminaison REST-API (/trx_addons/v2/get/sc_layout) qui appellerait la trx_addons_rest_get_sc_layout fonctionner à chaque fois que le noeud final a été appelé.

// Register endpoints
if ( !function_exists( 'trx_addons_rest_register_endpoints' ) ) {
   add_action( 'rest_api_init', 'trx_addons_rest_register_endpoints');
   function trx_addons_rest_register_endpoints() {
      // Return layouts for the Gutenberg blocks
      register_rest_route( 'trx_addons/v2', '/get/sc_layout', array(
         'methods' => 'GET,POST',
         'callback' => 'trx_addons_rest_get_sc_layout',
         ));
      }
}

// Return layout
if ( !function_exists( 'trx_addons_rest_get_sc_layout' ) && class_exists( 'WP_REST_Request' ) ) {
   function trx_addons_rest_get_sc_layout(WP_REST_Request $request) {

Il n’y avait aucune vérification de capacité sur ce point de terminaison qui bloquerait les utilisateurs qui n’étaient pas administrateurs ou actuellement connectés, de sorte que tout utilisateur avait la possibilité d’appeler le point de terminaison, quelle que soit sa capacité. De plus, il n’y a pas eu de vérification de nonce pour vérifier l’authenticité de la source. Mis à part le contrôle d’accès et la protection contre la falsification de requêtes intersites (CSRF), le cœur du problème résidait dans la fonctionnalité du code lui-même.

Quelques lignes plus tard, nous voyons la fonctionnalité pour obtenir des paramètres à partir de widgets, vraisemblablement des widgets qui fonctionnaient avec le plugin Gutenberg. C’est là que se trouvait le cœur de la vulnérabilité d’exécution de code à distance. Il n’y avait aucune restriction sur les fonctions PHP pouvant être utilisées ou sur les paramètres fournis en entrée. Au lieu de cela, nous voyons un simple if (function_exists($sc)) permettant d’appeler et d’exécuter n’importe quelle fonction PHP.

       // Get params from widget
      $params = $request->get_params();
      if (!empty($params['sc'])) {
         $sc = str_replace('trx_sc_', 'trx_addons_sc_', $params['sc']);
         if (function_exists($sc)) {
            $response['data'] = $sc($params);
         } else {
            $response['data'] = '
' . esc_html(sprintf(__("Unknown block %s", 'trx_addons'), $params['sc'])) . '
'; } } return new WP_REST_Response($response); } }

Cela a finalement permis des fonctions WordPress comme wp_insert_user à exécuter permettant aux attaquants d’injecter des comptes utilisateurs administratifs et de reprendre des sites.

The Fix

Afin de résoudre le problème de sécurité, ThemeREX a choisi de supprimer complètement le fichier ~ / plugin.rest-api.php affecté du plugin, car il n’était plus nécessaire pour ses fonctionnalités, car le plugin Gutenberg a été entièrement intégré dans le noyau WordPress .

Voici une liste de tous les thèmes ThemeREX affectés et de leurs versions corrigées, ainsi que les versions vulnérables du plug-in ThemeREX Addons et les versions nouvellement corrigées correspondantes, avec l’aimable autorisation de ThemeREX:

Nom du thèmeVersion du thème corrigéVersions vulnérables de ThemeREX Addons Version corrigée des modules complémentaires ThemeREX
Ozeum – Musée1.0.21.70.31.70.3.1
Chit Club – Jeux de société1.0.11.70.31.70.3.1
Yottis – Portfolio simple1.0.11.6.671.6.67.1
Helion – Thème Agence & Portfolio1.0.31.6.661.6.66.1
Amuli1.0.21.6.661.6.66.1
Nelson – Salon de coiffure + salon de tatouage1.1.20011.6.651.6.65.1
Alléluia – Eglise1.0.11.6.651.6.65.1
La bonne façon4.0.11.6.651.6.65.1
Prider – Pride Fest1.0.21.6.651.6.65.1
Mystik – Esoterics1.0.11.6.62.31.6.62.3.1
Compagnie de parachutisme et de vol1.0.11.6.62.31.6.62.4
DroneX – Services de photographie aérienne1.1.20011.6.62.11.6.62.1.1
Samadhi – bouddhiste1.0.11.6.61.21.6.61.2.1
TanTum – Louer une voiture, Louer un vélo, Louer un scooter Thème multiskin1.0.21.6.61.31.6.61.3.1
Scientia – Bibliothèque publique1.0.11.6.61.21.6.61.2.1
Blabber1.5.20091.6.61.21.6.61.2.1
Impacto Patronus Multi-landing1.1.20011.6.61.11.6.61.1.1
Radio rare1.0.11.6.611.6.61.1
Piqes – Thème WordPress pour le démarrage créatif et l’agence1.0.11.6.601.6.60.1
Kratz – Agence numérique1.0.21.6.59.31.6.59.4
Pixefy1.0.11.6.59.21.6.59.3
Netmix – Broadband & Telecom1.0.21.6.59.1.11.6.59.1.2
Soin des enfants3.0.51.6.591.6.59.1
Briny – Thème WordPress pour la plongée 1.2.20001.6.58.21.6.58.3
Tornades1.1.20011.6.57.31.6.57.4
Gril1.0.21.6.57.41.6.57.5
Yungen – Agence numérique / marketing1.0.11.6.57.21.6.57.2.1
FC United – Football1.0.71.6.57.31.6.57.3.1
Bugster – Contrôle des parasites1.0.21.6.57.21.6.57.3
Rumble – Single Fighter Boxer, News, Gym, Store.1.0.41.6.571.6.57.1
Tacticool – Thème WordPress pour champ de tir1.0.11.6.561.6.56.1
Coinpress – Cryptocurrency Magazine & Blog WordPress Theme1.0.21.6.55.41.6.55.5
Vihara – Ashram, bouddhiste1.1.20011.6.55.71.6.55.8
Katelyn – Thème du blog WordPress Gutenberg1.0.41.6.55.31.6.55.5
Heaven 11 – Thème de propriété multiskin1.0.21.6.55.11.6.55.2
Especio – Thème Gutenberg alimentaire1.0.11.6.541.6.54.1
Partiso_ElectionCampaign1.1.20021.6.53.11.6.53.2
Kargo – Transport de marchandises1.1.20041.6.53.31.6.53.4
Maxify – Blog de démarrage1.0.41.6.53.21.6.53.3
Lingvico – École d’apprentissage des langues1.0.31.6.53.11.6.53.3
Aldo – Thème du blog WordPress Gutenberg1.0.21.6.53.21.6.53.3
Vixus – Démarrage / Application mobile1.0.41.6.52.21.6.52.3
WellSpring _ Systèmes de filtration d’eau1.0.31.6.52.11.6.52.3
Nazareth – Eglise1.0.51.6.52.11.6.52.2
Tediss – Aire de jeux, café et garderie1.0.31.6.531.6.53.1
Yolox – Thème WordPress Magazine et blog de démarrage1.0.31.6.51.31.6.51.4
Repas et roues – Food Truck1.0.31.6.51.31.6.51.4
Rosalinda – Coach végétarienne et santé1.0.31.6.51.11.6.51.2
Vapester1.1.20011.6.501.6.50.1
Femme au foyer moderne – Blog femme au foyer et famille1.0.21.6.501.6.50.1
ChainPress1.0.31.6.50.11.6.50.2
Justitia – Thème d’avocat multiskin1.0.31.6.51.11.6.51.2
Hobo_Digital Nomad Blog1.0.31.6.501.6.50.1
Rhodos – Thème WordPress d’entreprise créatif1.3.20011.6.50.11.6.50.2
Buzz Stone – Magazine et Blog1.0.31.6.501.6.50.1
Événement Corredo_Sport1.1.20031.0.49.101.6.49.10
Campagne de collecte de fonds personnelle Julia1.0.31.6.49.81.6.49.9
BonkoZoo_Zoo1.0.31.6.49.61.6.49.7
Renouvellement – Clinique de chirurgien plasticien1.0.31.6.49.6.21.6.49.6.3
Gloss_blog1.0.11.6.49.51.6.49.6
Plomberie – Thème WordPress pour la réparation, la construction et la construction3.0.11.6.58.21.6.58.2.1
Thème et habillages TopperDivers1.6.61.21.6.61.3

Comment mettre à jour vers la dernière version des modules complémentaires ThemeREX

Il est important de noter que vous ne serez peut-être pas informé qu’une nouvelle version est disponible pour la mise à jour dans le tableau de bord WordPress comme la plupart des autres plugins. Si la page du plugin ne vous permet pas de mettre à jour, veuillez suivre ce guide.

  1. Mettez à jour le thème ThemeREX que vous avez installé sur votre site. Vous pouvez le faire via les sections Tableau de bord> Mises à jour ou Apparence> Thèmes de votre zone d’administration WordPress, si vous avez installé le plugin ThemeREX Updater. Si le plugin ThemeREX Updater n’est pas installé, vous devrez télécharger la version la plus récente du thème et effectuer une mise à jour manuelle.
  2. Une fois que vous aurez mis à jour votre thème ThemeREX, vous devrez désactiver et désinstaller la version vulnérable du plugin ThemeREX Addons.
  3. Vous serez invité à installer le plug-in ThemeREX Addons. Suivez les invites pour réinstaller la version corrigée des modules complémentaires ThemeREX. L’invite devrait ressembler à ceci:

    Invite à installer les modules complémentaires ThemeREX.

  4. Une fois que vous avez réinstallé le plugin, vous devriez avoir une version corrigée. Veuillez vérifier votre thème ci-dessus et comparer la version fixe à la version qui est maintenant installée sur votre site à partir de la page des plugins:

    Une version corrigée des modules complémentaires ThemeREX.

Si vous souhaitez vérifier que votre site n’exécute plus le code vulnérable, accédez au gestionnaire de fichiers de votre compte d’hébergement ou connectez-vous via FTP / SFTP / SSH et accédez à ~ / wp-content / plugins / trx_addons / includes / dossier. Si le fichier /plugin.rest-api.php n’est pas présent, vous pouvez être assuré que vous n’exécutez pas le code vulnérable sur votre site.

Si vous voyez toujours ce fichier, nous vous recommandons de contacter l’équipe de ThemeREX directement via leur forum de support car il peut y avoir eu un problème avec votre mise à jour.

Aperçu des attaques

Nous avons bloqué plus de 267 000 tentatives d’exploitation au cours des 2 dernières semaines depuis que nous avons été initialement alertés de la présence de la vulnérabilité. La bonne nouvelle, cependant, est que la grande majorité des tentatives que nous avons bloquées semblent avoir été des tentatives de découverte par des attaquants essayant sans succès de trouver des sites exécutant le plugin ThemeREX Addons ou des attaquants essayant simplement de découvrir le fonctionnement de la vulnérabilité. Les tentatives d’exploitation infructueuses ont ressemblé à ceci:

example.com/wp-json/trx_addons/v2/get/sc_layout?sc=sdw1dd1

Les tentatives d’exploitation réussies ont ressemblé à ceci et ont provoqué la création d’un nouveau compte d’utilisateur de niveau administratif sur un site vulnérable:

example.com/wp-json/trx_addons/v2/get/sc_layout?sc=wp_insert_user&role=administrator&user_login=TEST&user_pass=TEST

Nous nous sommes assurés que notre divulgation du 18 février comprenait des détails minimaux pour empêcher les attaquants d’exploiter cette vulnérabilité tout en alertant les utilisateurs d’un problème critique nécessitant leur attention immédiate.

Maintenant que des correctifs ont été publiés, nous nous sentons à l’aise de divulguer les détails de cette vulnérabilité. Cependant, comme pour la plupart des divulgations complètes, nous nous attendons à une augmentation des tentatives d’exploitation efficaces, par conséquent, nous exhortons les utilisateurs à mettre à jour vers la dernière version disponible dès que possible.

Procédure pas à pas PoC

Calendrier de divulgation

18 février 2020 – Wordfence a été informé de l’exploitation active de la vulnérabilité. Wordfence publie immédiatement une règle de pare-feu pour les utilisateurs de Wordfence Premium et informe l’équipe du plugin ThemeREX. Nous publions un article pour informer les utilisateurs qu’ils doivent supprimer le plugin jusqu’à ce qu’un patch soit publié.
19 février 2020 – Irvin McDowell de ThemeREX répond et reconnaît les problèmes de sécurité et confirme qu’ils travaillent sur un correctif.
20 février 2020 – Notification que tous les thèmes sur ThemeForest ont été mis à jour pour inclure des copies corrigées des addons ThemeREX.
9 mars 2020 – Le thème ThemeREX final a été mis à jour pour inclure une copie corrigée des modules complémentaires ThemeREX
9 mars 2020 – Divulgation complète fournie.
19 mars 2020 – Les utilisateurs gratuits de Wordfence reçoivent une règle de pare-feu.

Conclusion

Dans l’article d’aujourd’hui, nous avons fourni les détails techniques de la vulnérabilité trouvée dans le plugin ThemeREX Addons. Cette faille a été corrigée dans tous les thèmes ThemeREX qui exécutaient des versions vulnérables de ce plugin et nous recommandons aux utilisateurs de mettre à jour la dernière version disponible immédiatement. Sites en cours d’exécution Wordfence Premium sont protégés des attaques contre cette vulnérabilité depuis le 18 février. Les sites exécutant la version gratuite de Wordfence recevront la mise à jour des règles de pare-feu le 19 mars 2020.

Un merci spécial à Irvin McDowell, le DSI de ThemeREX, pour avoir travaillé avec nous et fourni des détails au besoin et à toute l’équipe de ThemeREX pour avoir travaillé rapidement pour résoudre ce problème. Merci également à Ramuel Gall, Sean Murphy et Matt Rusnak de l’équipe Wordfence pour leur assistance dans l’analyse de la vulnérabilité et pour la diffusion rapide d’une règle de pare-feu aux utilisateurs de Wordfence. Et encore une fois, merci à Tobias Westphal et Arne Breitsprecher pour avoir signalé cette vulnérabilité à Wordfence.


Source link

%d blogueurs aiment cette page :