Des vulnérabilités critiques et faciles à exploiter ont été découvertes dans un plug-in WordPress.
Le plug-in concerné est ProfilePress, qui est installé sur plus de 400 000 sites. Mais bonne nouvelle, une mise à jour est disponible.
Des fonctionnalités mal implémentées à l'origine des vulnérabilités
Il y a un mois, Chloe Chamberland de l'équipe de la Wordfence Threat Intelligence a trouvé plusieurs vulnérabilités dans le plug-in ProfilePress, connu auparavant sous le nom de WP User Avatar. De base, ce plug-in ne servait qu'à permettre d'ajouter des avatars à un profil utilisateur, mais s'est depuis amélioré avec de nouvelles fonctionnalités comme l'inscription et la connexion d'utilisateurs sur un site. Ce sont ces fonctionnalités qui sont au cœur du problème aujourd'hui puisqu'elles n'ont pas été implémentées correctement.
La première vulnérabilité est liée au fait que les utilisateurs peuvent modifier leurs propres métadonnées lors de leur inscription sur un site. Le problème vient du fait qu'aucune vérification, à part le contrôle de la saisie de caractères pour ne pas laisser la case vide, n'est mise en place sur le contenu de ces données fournies par l'utilisateur avant d'être enregistrées. Il est donc possible de fournir « wp_capabilities » en tant que paramètre et donc de modifier son rôle pour se désigner comme administrateur d'un site.
Encore pire, le plug-in ne vérifie pas si les administrateurs ont permis ou non l'inscription d'utilisateurs. Donc même si l'option est désactivée, de nouvelles personnes peuvent s'enregistrer en tant qu'admin. Cette vulnérabilité est également détectée lors de la mise à jour d'un profil.
Une autre vulnérabilité se trouve dans la fonction permettant à des utilisateurs de fournir une image et une bannière pour agrémenter leur profil. La seule vérification du format de fichier uploadé par l'utilisateur est réalisée avec la fonction exif_imagetype(), qui n'est pas sécurisée. Cette fonction vérifie uniquement les premiers octets d'un fichier pour déterminer son format et peut très facilement être contournée en ajoutant ces octets au début d'un fichier PHP par exemple pour le faire passer pour une image. Un attaquant pourrait donc très facilement prendre le contrôle du site de cette manière, et ce, dès l'inscription.
Une mise à jour disponible
Il est également possible pour un attaquant d'uploader n'importe quel fichier dans le cas où les administrateurs d'un site auraient activé l'option « custom fields ». Cette option nécessite qu'un administrateur fournisse les extensions de fichiers acceptées. Si ce n'est pas fait, le plug-in ne fait aucune vérification et n'importe quel fichier peut être enregistré sur le serveur.
Ces vulnérabilités ont un CVSS Score de 9.8, ce qui les classe dans la catégorie « critique ». La chercheuse indique avoir attendu 30 jours pour en parler publiquement, afin de permettre aux versions payantes et gratuites de ProfilePress de bénéficier de la mise à jour. Toutes les versions inférieures à la 3.1.4 sont vulnérables et il est conseillé de faire la dernière mise à jour, qui est la 3.1.8.