Le 23 janvier, notre équipe Threat Intelligence a découvert une vulnérabilité dans Extraits de code, un plugin WordPress installé sur plus de 200 000 sites. La faille a permis à quiconque de falsifier une demande au nom d’un administrateur et d’injecter du code exécutable sur un site vulnérable. Il s’agit d’une vulnérabilité de falsification de requête intersite (CSRF) à l’exécution de code à distance (RCE). Nous avons divulgué en privé tous les détails au développeur du plugin le 24 janvier, qui a rapidement répondu et publié un patch un jour plus tard.

Il s’agit d’un problème de sécurité très grave qui pourrait entraîner une prise de contrôle complète du site, la divulgation d’informations, etc. Nous vous recommandons vivement de mettre à jour immédiatement la dernière version (2.14.0).

Les clients de Wordfence Premium ont reçu une nouvelle règle de pare-feu le 24 janvier pour se protéger contre les exploits ciblant cette vulnérabilité. Les utilisateurs de Wordfence gratuits recevront la règle après trente jours le 23 février.

Absence de protection CSRF pour terminer la reprise du site WordPress

Les extraits de code sont un plugin pratique et facile à utiliser qui permet aux utilisateurs d’ajouter des extraits de code à un site WordPress afin de personnaliser les fonctionnalités du site sans avoir à parcourir le code sous-jacent du site. Il facilite l’activation et la désactivation de la fonctionnalité d’extrait de code afin de tester l’ajout de nouveau code à un site WordPress.

Le développeur du plugin a protégé presque tous les points de terminaison de ce plugin avec des «nonces» WordPress pour une plus grande sécurité. Cependant, la fonction d’importation du plugin n’avait pas la même protection CSRF. Sans cette protection, un attaquant pourrait créer une requête malveillante pour inciter un administrateur à infecter son propre site. Cette demande exécuterait une action, enverrait une demande au site et le code malveillant de l’attaquant pourrait être injecté et exécuté sur le site. Avec les vulnérabilités d’exécution de code à distance, les possibilités d’exploitation sont infinies. Un attaquant pourrait créer un nouveau compte administratif sur le site, exfiltrer des informations sensibles, infecter les utilisateurs du site et bien plus encore.

Les valeurs par défaut peuvent être contournées

Les extraits de code ont été implicitement définis comme «désactivés» par défaut lors de l’importation. Pour que les extraits de code importés soient activés, une action supplémentaire devait être effectuée. Cela semblait être une excellente nouvelle car aucun extrait de code importé à la suite de CSRF ne serait réellement exécuté sur le site à moins qu’un administrateur du site n’active ce code – ce qui serait peu probable lors d’une attaque CSRF. Cependant, nous avons découvert que cette protection pouvait facilement être contournée pour permettre l’activation d’un extrait de code lors de l’importation.

Un attaquant pourrait simplement injecter un "active" indicateur avec une valeur de "1" dans le corps JSON contenant les détails d’importation de code, et l’extrait de code serait activé lors de l’importation. Cela a transformé un problème mineur en un problème très grave, car un attaquant pourrait désormais injecter du code malveillant et s’assurer qu’il serait activé et exécuté chaque fois que quelqu’un accède au site.

{"generator":"Code Snippets v2.13.3","date_created":"2020-01-23 16:56","snippets":[{"name":"PoC","scope":"global","code":"MALICIOUS CODE HERE","priority":"1","active":"1"}]}

Le développeur a corrigé cela afin que les extraits de code soient toujours désactivés lors de l’importation de manière explicite, plutôt que d’utiliser une technique plus implicite pour désactiver les extraits lors de l’importation trouvés dans les versions vulnérables du plugin.

Démonstration de la preuve de concept

Nous avons créé cette courte vidéo pour montrer comment cette vulnérabilité pourrait être exploitée et quel pourrait être son impact potentiel.

Divulgation de l’impact des règles de pare-feu

Nous avons rencontré certaines restrictions lors de l’écriture d’une règle de pare-feu pour nous protéger contre cette vulnérabilité. Les vulnérabilités CSRF peuvent être difficiles à protéger sans bloquer les fonctionnalités normales des administrateurs de site, car ces types de vulnérabilités nécessitent qu’un administrateur soit connecté et exécute sans le savoir une action pour envoyer une demande. Du point de vue du pare-feu, cela signifie que les tentatives d’exploitation semblent provenir d’une source légitime et connectée.

En raison du risque associé à la vulnérabilité, nous avons choisi de bloquer complètement la fonctionnalité de la fonction d’importation, ce qui signifie que les utilisateurs de Wordfence peuvent rencontrer un faux positif lorsqu’ils essaient d’importer des extraits de code s’ils utilisent une version vulnérable de ce plugin.

Heureusement, le développeur du plugin a changé le point de terminaison associé à la fonctionnalité d’importation, garantissant que les versions mises à jour ne rencontreront pas de blocages faux positifs par le pare-feu Wordfence. Comme toujours, nous vous recommandons fortement de mettre à jour la dernière version de ce plugin – non seulement pour la sécurité de votre site, mais également pour préserver les fonctionnalités.

Calendrier de divulgation

23 janvier 2020 – Vulnérabilité initialement découverte et analysée. Portée initiale du développeur.
23 janvier 2020 – Le développeur confirme la boîte de réception appropriée pour gérer la discussion.
24 janvier 2020 – Rapport complet envoyé au développeur. Règle de pare-feu publiée pour les utilisateurs de Wordfence Premium.
24 janvier 2020 – Le développeur confirme les détails et commence à travailler sur le patch.
25 janvier 2020 – Patch publié.
23 février 2020 – Les utilisateurs gratuits de Wordfence reçoivent une règle de pare-feu.

Conclusion

Dans l’article d’aujourd’hui, nous avons détaillé une vulnérabilité CSRF à RCE dans le plugin Code Snippets. Cette faille a été corrigée dans la version 2.14.0 et nous recommandons aux utilisateurs de mettre à jour vers 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 24 janvier. Les sites exécutant la version gratuite de Wordfence recevront la mise à jour des règles de pare-feu le 23 février 2020.

Un merci spécial au développeur du plugin, Shea Bunge, pour avoir répondu rapidement et réagi rapidement pour sortir un patch un jour après la divulgation complète.


Source link

%d blogueurs aiment cette page :