Tôt hier, le Champs de paiement flexibles pour WooCommerce le plugin a reçu une mise à jour critique pour corriger une vulnérabilité zero-day qui permettait aux attaquants de modifier les paramètres du plugin. Alors que notre équipe Threat Intelligence recherchait la portée de cette campagne d’attaque, nous avons découvert trois vulnérabilités zero-day supplémentaires dans les plugins WordPress populaires qui sont exploités dans le cadre de cette campagne. Les plugins ciblés étaient JavaScript asynchrone, Calendrier des événements modernes Lite, et 10Web Map Builder pour Google Maps. Pour le moment, nous avons contacté l’équipe de développement de chaque plugin dans l’espoir de résoudre rapidement ces problèmes.

Cette campagne d’attaque exploite les vulnérabilités XSS dans les plugins ci-dessus pour injecter du Javascript malveillant qui peut créer des administrateurs WordPress voyous et installer des plugins malveillants qui incluent des backdoors. Il est important que les administrateurs de site utilisant ces plugins prennent d’urgence des mesures pour atténuer ces attaques.

Nous avons publié des règles de pare-feu pour protéger les utilisateurs de Wordfence contre ces attaques. Ces règles sont déjà disponibles pour les utilisateurs de Wordfence Premium et seront disponibles pour les sites encore sur la version gratuite dans trente jours. Heureusement, comme ces vulnérabilités sont exploitées pour injecter des charges utiles XSS, ces attaques ont été bloquées par la protection XSS intégrée disponible pour tous les utilisateurs de Wordfence, gratuitement ou Premium. Cependant, la nature de chaque vulnérabilité permet d’autres activités perturbatrices qui ne seraient pas bloquées par ces protections, nécessitant des règles de pare-feu supplémentaires.

La publication d’aujourd’hui donne un aperçu de ces vulnérabilités pour informer la communauté de leurs risques actuels. Plus de détails sur cette campagne seront examinés dans un prochain article de blog.

XSS stocké non authentifié dans des champs de paiement flexibles pour WooCommerce

La description: XSS stocké non authentifié via la modification des paramètres du plugin
Plugin concerné: Champs de paiement flexibles pour WooCommerce
Versions concernées:
Score CVSS: 9.3 (Critique)
Vecteur CVSS: CVSS: 3.0 / AV: N / AC: L / PR: N / UI: R / S: C / C: H / I: H / A: N
Version corrigée: 2.3.2

Dans un rapport publié hier par NinTechNet, les chercheurs ont alerté la communauté de la présence de cette vulnérabilité et des attaques contre elle. Les attaquants non authentifiés sont capables de modifier les options du plugin, qui peuvent être utilisées pour injecter des charges utiles XSS qui peuvent être déclenchées dans le tableau de bord d’un administrateur connecté.

Les versions flexibles de Checkout Fields jusqu’à 2.3.1 sont vulnérables à ces attaques. Les développeurs du plugin, WP Desk, a publié un correctif avec la version 2.3.2 rapidement après avoir été informé du problème. Depuis lors, ils ont publié deux mises à jour supplémentaires pour mettre en œuvre des mesures de sécurité supplémentaires. Le référentiel WordPress.org rapporte une base d’installation de plus de 20 000 sites avec le plugin. Nous invitons tous les utilisateurs du plugin à mettre à jour vers la dernière version disponible le plus rapidement possible afin de réduire leurs risques d’exploitation.

Cette vulnérabilité était due à un manque de vérification des capacités de la fonction de mise à jour des paramètres du plugin. Dans classes/settings.php, la fonction updateSettingsAction() est accroché à WordPress admin_init crochet. Ce crochet se déclenche quand /wp-admin/ point de terminaison est accessible, y compris ceux qui ne nécessitent pas d’authentification.

public function updateSettingsAction(){

    if ( !empty( $_POST ) ) {
        if ( !empty($_POST['option_page']) && in_array( $_POST['option_page'], array('inspire_checkout_fields_settings', 'inspire_checkout_fields_checkboxes') ) ) {


        	if ( !empty( $_POST[$this->plugin->get_namespace()] ) ) {

                foreach ( $_POST[$this->plugin->get_namespace()] as $name => $value ) {
                	$settings = get_option( 'inspire_checkout_fields_' . $name, array() );
                	if ( is_array( $value )) {
                		foreach ( $value as $key => $val ) {
                			$settings[$key] = $val;

L’extrait ci-dessus montre les premières lignes de la fonction, ce qui permet de vérifier certaines $_POST valeurs mais pas de contrôles de sécurité. En créant un tableau de paramètres attendus, les attaquants peuvent injecter des charges utiles JavaScript dans les éléments qui s’affichent à l’écran.

Cette vulnérabilité a été corrigée par les développeurs de plugins en implémentant une vérification des capacités pour garantir que seuls les administrateurs peuvent modifier ces paramètres.

Abonné + XSS stocké dans Async JavaScript

Une vulnérabilité similaire existe dans le Plugin JavaScript Async, qui est actuellement actif sur plus de 100 000 sites WordPress. Nous avons informé le développeur du plugin, Frank Goossens, qui a rapidement publié un correctif pour ce problème. Étant donné que la mise à jour a été rendue disponible si récemment, nous fournissons actuellement des détails limités sur la vulnérabilité.

Les paramètres JavaScript Async sont modifiés via des appels à wp-admin/admin-ajax.php avec l’action aj_steps. Cette action AJAX est enregistrée uniquement pour les utilisateurs authentifiés, mais aucune vérification des capacités n’est effectuée. Pour cette raison, les utilisateurs à faible privilège, y compris les abonnés, peuvent modifier les paramètres du plug-in.

Semblable aux champs de paiement flexibles ci-dessus, certaines valeurs de paramètre peuvent être injectées avec une charge utile spécialement conçue pour exécuter du JavaScript malveillant lorsqu’un administrateur WordPress affiche certaines zones de leur tableau de bord.

XSS stocké non authentifié dans 10Web Map Builder pour Google Maps

La description: XSS stocké non authentifié via la modification des paramètres du plugin
Plugin concerné: 10Web Map Builder pour Google Maps
Versions concernées:
Score CVSS: 9.3 (Critique)
Vecteur CVSS: CVSS: 3.0 / AV: N / AC: L / PR: N / UI: R / S: C / C: H / I: H / A: N
Version corrigée: Pas encore disponible

Une troisième vulnérabilité XSS via la modification des paramètres est présente dans 10Web Map Builder pour Google Maps. Ce plugin est actif sur plus de 20 000 sites. Contrairement à Async JavaScript, cette vulnérabilité peut être exploitée par des attaquants non authentifiés.

Nous avons pris contact pour établir le contact avec les développeurs du plugin et attendons leur réponse pour le moment. Comme pour la vulnérabilité précédente, car elle est attaquée dans la nature, nous fournissons des détails limités.

La vulnérabilité dans 10Web Map Builder existe dans le processus de configuration du plugin. Les fonctions de configuration du plugin sont appelées pendant admin_init qui, comme Flexible Checkout Fields, est accessible aux utilisateurs non authentifiés. Si un attaquant injecte du JavaScript malveillant dans certaines valeurs de paramètres, ce code s’exécutera pour les administrateurs dans leur tableau de bord ainsi que pour les visiteurs de site dans certaines circonstances.

Vulnérabilités XSS de plusieurs abonnés + stockées dans Modern Events Calendar Lite

La description: Vulnérabilités XSS de plusieurs abonnés + stockées
Plugin concerné: Calendrier des événements modernes Lite
Versions concernées:
Score CVSS: 7,6 (Élevé)
Vecteur CVSS: CVSS: 3.0 / AV: N / AC: L / PR: L / UI: R / S: C / C: L / I: H / A: N
Version corrigée: Pas encore disponible

La dernière vulnérabilité de ce rapport affecte Calendrier des événements modernes Lite, avec plus de 40 000 installations.

Nous avons pris contact pour établir le contact avec le développeur et attendons une réponse. Encore une fois, comme ce problème est connu des acteurs malveillants, nous en informons la communauté.

Modern Events Calendar Lite enregistre un certain nombre d’actions AJAX pour les utilisateurs connectés. Certaines de ces actions permettent aux utilisateurs à faibles privilèges comme les abonnés de manipuler les paramètres et autres données stockées. Lorsqu’elles sont exploitées de cette manière, les données affectées peuvent être injectées avec diverses charges utiles XSS.

Selon l’endroit où les attaquants ont inséré du code, ces scripts peuvent être exécutés dans le tableau de bord WordPress pour affecter les administrateurs, ou sur le devant du site de la victime pour affecter leurs visiteurs. Les attaques actuelles de cette campagne ciblent les administrateurs afin de créer des comptes malveillants pour les attaquants.

Conclusion

Aujourd’hui, nous avons dévoilé trois nouvelles vulnérabilités zero-day affectant l’écosystème WordPress. Nous travaillons pour aider ces développeurs à résoudre rapidement ces vulnérabilités, mais certains restent non corrigés pour le moment. Nous prenons le processus de divulgation de la sécurité très au sérieux et nous ne publierions pas ces détails s’il n’était pas nécessaire d’alerter la communauté WordPress de leurs risques au milieu de cette campagne.

Les attaques XSS utilisées dans cette campagne sont bloquées de manière fiable par les protections intégrées du pare-feu Wordfence, qui sont disponibles pour Wordfence Premium les utilisateurs ainsi que les sites encore sur la version gratuite. De nouvelles règles WAF pour empêcher d’autres activités perturbatrices sont également disponibles pour les utilisateurs Premium pour le moment.

Parce que ces attaques sont en cours, les recherches sur cette campagne sont toujours en cours. Nous publierons un article de suivi avec des détails complets sur ces attaques dès que cette recherche sera terminée. Assurez-vous d’être informé au plus vite en vous inscrivant à notre liste de diffusion.

Ce travail ne serait pas possible sans les efforts combinés de l’équipe Wordfence. Remerciements particuliers au directeur de Threat Intelligence Sean Murphy, au responsable QA Matt Rusnak et à l’ingénieur QA Ramuel Gall pour leurs contributions à la découverte et à la recherche de ces attaques, à l’analyse et à la divulgation des vulnérabilités, et à leur aide dans la rédaction de ce billet.


Source link