Vulnérabilités dans le plugin WordPress NinjaForms

Date de publication :

Ninja Forms est un plugin WordPress permettant de créer des formes de façon intuitive.
Parmi ses fonctionnalités, ce plugin offre la possibilité d'installer des "Add-Ons". Deux de ces Addons comportent des vulnérabilités présentant un niveau élevé de risque.

CVE-xxxx-xxxxx [Score CVSS v3 : N/A] :  Le service Add-On SendWP permet la livraison et l’enregistrement de courrier électronique destiné à simplifier le traitement du courrier avec WordPress. Le tableau de bord Add-On du plugin Ninja Form offre la possibilité de configurer ce service en quelques clics seulement. Afin de fournir cette fonctionnalité, le plugin enregistre l'action AJAX wp_ajax_ninja_forms_sendwp_remote_install.
Cette action AJAX est liée à la fonction wp_ajax_ninja_forms_sendwp_remote_install_handler, qui vérifie si le plugin SendWP est installé et activé. Si le plugin n'est pas encore installé, il effectue l'installation et l'activation du plugin SendWP.
Une fois que le plugin a été installé avec succès, la fonction renvoie l'url d'enregistrement, ainsi que le nom du client, le secret du client, l'url d'enregistrement et l'url du client. Ceci est utilisé pour montrer aux utilisateurs la page d'inscription et pour connecter facilement leur instance WordPress avec SendWP. 
Cette action AJAX n'a pas fait l'objet d'une vérification, ni d'une protection, ce qui peut permettre à un attaquant distant et faiblement authentifié d'installer et d'activer le plugin SendWP et de récupérer la clé client_secret nécessaire pour établir la connexion SendWP.

CVE-xxxx-xxxxx [Score CVSS v3 : N/A] : Une des fonctionnalités de Ninja Forms est la possibilité de se connecter au service de gestion des Add-ons de Ninja Forms. Tout comme le service SendWP, il offre la possibilité de mettre en place ce service en quelques clics depuis le tableau de bord de l'addon du plugin Ninja Form. Afin de fournir cette fonctionnalité, le plugin enregistre l'action AJAX wp_ajax_nf_oauth qui est utilisée pour récupérer le connection_url qui contient les informations nécessaires, comme le client_secret, pour établir une connexion OAuth avec le portail de gestion des addons de Ninja Forms.
Cette action AJAX n'a pas fait l'objet d'une vérification, ni d'une protection. Un attaquant distant et faiblement authentifié peut potentiellement déclencher l'action et récupérer l'url de connexion nécessaire pour établir une connexion. Il pourraitégalement récupérer le client_id pour une connexion OAuth déjà établie. 
Cependant, il y aurait une certaine ingénierie sociale impliquée car l'attaquant aurait besoin de tromper l'administrateur du site en cliquant sur un lien pour mettre à jour le client_id dans la base de données avec l'action AJAX nf_oauth_connect pour que la connexion soit complète. À partir de là, il est possible d’installer n'importe quel plugin Add-On acheté.

 

Informations

La faille est activement exploitée :

Un correctif existe :

Une mesure de contournement existe :

Risques

Risques

  • Vol d’identifiants
  • Violation des politiques de sécurité

Criticité

  • Scores CVSS v3 : N/A

Existence d’un code d’exploitation

  • Aucun code d'exploitation n’est disponible à l’heure actuelle.

Composants vulnérables

  • Les versions de Ninja Forms Contact Form antérieures à la version 3.4.34.1 sont impactées par ces vulnérabilités.

CVE

  • CVE-xxxx-xxxxx

Solutions ou recommandations

Mise en place de correctifs de sécurité

  • Mettre à jour Ninja Forms Contact Form vers la version 3.4.34.1

Solution de contournement

  • Aucune solution de contournement n’est proposée à l’heure actuelle.