Le 3 août 2021, l’équipe Wordfence Threat Intelligence a lancé le processus de divulgation responsable de deux vulnérabilités découvertes dans Formes Ninja, un plugin WordPress installé sur plus de 1 000 000 de sites. Ces failles ont permis à un attaquant d’exporter des informations sensibles et d’envoyer des e-mails arbitraires à partir d’un site vulnérable qui pourraient être utilisés pour hameçonner des utilisateurs sans méfiance.

Les utilisateurs de Wordfence Premium ont reçu une règle de pare-feu pour se protéger contre tout exploit ciblant cette vulnérabilité le 2 août 2021. Les sites utilisant encore la version gratuite de Wordfence ont reçu la même protection le 1er septembre 2021.

Nous avons envoyé les détails complets de la divulgation à Ninja Forms le 3 août 2021, conformément à la politique de divulgation de sécurité répertoriée sur le site Web de Ninja Forms. Ninja Forms a rapidement reconnu le rapport le même jour et nous a informés qu’ils commenceraient immédiatement à travailler sur un correctif. Un correctif est sorti le 7 septembre 2021 en version 3.5.8.

Nous vous recommandons fortement de mettre à jour immédiatement vers la dernière version corrigée de Ninja Forms pour corriger ces problèmes de sécurité, qui est la version 3.5.8.2 de Ninja Forms au moment de cette publication.


La description: API REST non protégée pour la divulgation d’informations sensibles
Plugin concerné : Formes Ninja
Plugin Slug : ninja-formes
Versions concernées :
Identifiant CVE : CVE-2021-34647
Note CVSS : 6.5 (Moyen)
Vecteur CVSS : CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Des chercheurs: Chloé Chamberland
Version entièrement corrigée : 3.5.8

Ninja Forms est l’un des plugins de création de formulaires les plus populaires pour les sites Web WordPress. L’une des fonctionnalités offertes par le plug-in est la possibilité d’exporter toutes les soumissions de formulaires d’un site pour examiner et analyser les données de soumission. Malheureusement, cela n’a pas été mis en œuvre de manière sécurisée, permettant à tout utilisateur authentifié d’exporter toutes les données de soumission d’un site.

Le plugin a enregistré une route de repos /ninja-forms-submissions/export qui a en fait utilisé un permissions_callback. Cependant, cette vérification n’a fait que valider si un utilisateur était connecté ou non via le is_user_logged_in() fonction. Il n’y avait aucune vérification pour vérifier si un utilisateur disposait des autorisations appropriées pour exécuter la fonction.

    public function permission_callback(WP_REST_Request $request) {
        
        //Set default to false
        $allowed = false;

        //Check Capability of logged in users
        $allowed = is_user_logged_in();

Cela signifiait que tout utilisateur connecté pouvait utiliser le /ninja-forms-submissions/export point de terminaison et exporter tout ce qui a déjà été soumis à l’un des formulaires du site. Selon la façon dont les formulaires d’un site ont été configurés, ces données pourraient contenir des informations personnelles identifiables (PII) sensibles qui fourniraient à un attaquant des informations précieuses pour mener d’autres attaques.


En plus de la vulnérabilité d’exportation de soumission en masse précédente, il y avait une autre fonctionnalité dans le plugin qui n’était pas implémentée de manière sécurisée en utilisant le même permissions_callback validation.

Le plugin a enregistré le /ninja-forms-submissions/email-action point de terminaison qui était destiné à déclencher des actions d’e-mail en masse sur les soumissions de formulaire. Cette fonctionnalité était destinée à permettre aux propriétaires de sites de déclencher diverses actions par e-mail, telles que l’envoi d’une confirmation par e-mail ou d’une notification par e-mail, en masse en réponse aux soumissions des utilisateurs.

Malheureusement, étant donné que cette fonctionnalité utilisait la même permissions_callback check, tout utilisateur authentifié peut déclencher une action par e-mail à l’aide du point de terminaison REST-API. Pour aggraver les choses, le trigger_email_action fonction exécutée par le email-action le point de terminaison a conçu l’e-mail en fonction des valeurs pouvant être transmises dans la demande. Cela a permis à un attaquant de créer un e-mail complètement unique, qui comprenait le corps et l’objet, puis de l’envoyer depuis le site vulnérable vers n’importe quelle adresse e-mail.

   public function trigger_email_action(WP_REST_Request $request) {
        //Extract required data
        $data = json_decode($request->get_body());  
        $form = Ninja_Forms()->form( $data->formID );
        $sub = $form->get_sub( $data->submission );
        $field_values = $sub->get_field_values();

        //Throw error if we're missing data
        if( !isset($data) || empty($form) || empty($sub) ) {
            return new WP_Error( 'malformed_request', __('This request is missing data', 'ninja-forms') );
        }
        
        //Process Merge tags       
        $action_settings = $this->process_merge_tags( $data->action_settings, $data->formID, $sub );
        //Process Email Action
        $email_action = new NF_Actions_Email();
        $result = $email_action->process( (array) $action_settings, $data->formID, (array) $field_values );

        //Return true if wp_mail returned true or the submission ID if it failed.
        $return = !empty($result['actions']['email']['sent']) && true === $result['actions']['email']['sent'] ? $result['actions']['email']['sent'] : $sub->get_seq_num();
        
        return $return;

Cette vulnérabilité pourrait facilement être utilisée pour créer une campagne de phishing qui pourrait amener des utilisateurs peu méfiants à effectuer des actions indésirables en abusant de la confiance dans le domaine utilisé pour envoyer l’e-mail. En outre, une attaque de spear phishing plus ciblée pourrait être utilisée pour faire croire à un propriétaire de site qu’un e-mail provenait de son propre site. Cela pourrait être utilisé pour amener un administrateur à saisir son mot de passe sur une fausse page de connexion, ou permettre à un attaquant de tirer parti d’une deuxième vulnérabilité nécessitant une ingénierie sociale, telle que Cross-Site Request Forgery ou Cross-Site Scripting, qui pourrait être utilisée. pour la reprise du site.

Calendrier de divulgation

2 août 2021 – Conclusion de l’analyse du plugin qui a conduit à la découverte de deux vulnérabilités dans le plugin WordPress Ninja Forms. Nous développons une règle de pare-feu pour protéger les clients de Wordfence et la diffusons aux utilisateurs de Wordfence Premium.
3 août 2021 – Nous envoyons tous les détails de divulgation. Le fournisseur confirme qu’il a reçu les détails et commencera à travailler sur un correctif.
31 août 2021 – Nous effectuons un suivi avec le fournisseur pour vérifier l’état des correctifs de sécurité.
1er septembre 2021 – Les utilisateurs sans Wordfence reçoivent la règle de pare-feu. Nous recevons une mise à jour indiquant que les correctifs de sécurité sont en place et prêts à être publiés. Le vendeur nous informe qu’il fera un suivi avec une date de sortie estimée.
6 septembre 2021 – Nous recevons une mise à jour indiquant que la version corrigée sera publiée dans quelques jours.
7 septembre 2021 – Une nouvelle version mise à jour du plugin, 3.5.8, est publiée contenant suffisamment de correctifs.

Conclusion

Dans l’article d’aujourd’hui, nous avons détaillé deux failles dans Ninja Forms qui permettaient aux attaquants d’exporter des données sensibles et d’envoyer des e-mails arbitraires à partir de n’importe quel site vulnérable. Ces failles ont été entièrement corrigées dans la version 3.5.8. Nous recommandons aux utilisateurs de WordPress de mettre immédiatement à jour vers la dernière version disponible, qui est la version 3.5.8.2 au moment de cette publication.

Wordfence Premium les utilisateurs ont reçu une règle de pare-feu pour se protéger contre tout exploit ciblant cette vulnérabilité le 2 août 2021. Les sites utilisant encore la version gratuite de Wordfence ont reçu la même protection le 1er septembre 2021.

Si vous connaissez un ami ou un collègue qui utilise ce plugin sur son site, nous vous recommandons vivement de lui transmettre cet avis pour aider à protéger ses sites, car il s’agit de vulnérabilités graves pouvant entraîner la divulgation d’informations sensibles.

Cliquez ici pour rejoindre la liste de diffusion WordPress Security et recevez des rapports de vulnérabilité comme celui-ci dès leur publication.


Source link