Des centaines, voire des milliers de plugins WordPress sont conçus dans le but de faciliter la création et la maintenance de sites pour les propriétaires de sites. Ils ajoutent des fonctionnalités non disponibles dans WordPress Core qui obligeraient autrement les propriétaires de sites à écrire leur propre code pour étendre les fonctionnalités. Cependant, ces plugins bien intentionnés peuvent parfois contenir des bogues apparemment anodins qui peuvent entraîner des conséquences catastrophiques.

Le mardi 7 février 2023, l’éminent chercheur en vulnérabilité WordPress István Márton, également connu sous le nom de Codes Lanaa contacté l’équipe Wordfence Threat Intelligence pour divulguer de manière responsable un vulnérabilité de la divulgation d’informations dans Créateur de profil Cozmolabs, un plugin WordPress conçu pour améliorer le profil utilisateur et l’expérience d’enregistrement avec plus de 60 000 installations actives signalées. Si elle est exploitée, cette vulnérabilité permet aux pirates d’obtenir des privilèges élevés en prenant le contrôle de comptes arbitraires.

Les chercheurs de Wordfence ont rapidement évalué la vulnérabilité et déployé une règle de pare-feu pour protéger les clients contre l’exploitation. Prime, Se soucieret Réponse les clients ont reçu cette protection le 13 février 2023 ainsi qu’une règle de pare-feu supplémentaire pour une protection étendue le 14 février 2023. Les sites exécutant toujours la version gratuite de Wordfence recevront la même protection 30 jours plus tard, les 14 et 15 mars 2023, respectivement.

En coordination avec Márton, Cozmolabs a rapidement publié un correctif dans la version 3.9.1 de Profile Builder le 13 février 2023, seulement 6 jours après la découverte de la vulnérabilité.

Résumé des vulnérabilités

Analyse de vulnérabilité

La vulnérabilité, attribuée CVE-2023-0814, existe en raison d’une autorisation manquante dans la fonction wppb_toolbox_usermeta_handler(). La fonction affectée est définie comme une fonction de rappel au code court ‘user_meta’qui est enregistré via la fonction WordPress add_shortcode() dans usermeta.php.

Comme avec toutes les fonctions de rappel de shortcode, wppb_toolbox_usermeta_handler() prend un tableau d’attributs. En particulier, l’attribut ‘user_id’ est utilisé pour créer un nouvel objet utilisateur. Ensuite, l’attribut ‘key’ est utilisé dans un appel à ‘$user->get()’. Enfin, la fonction renvoie la valeur de la ‘clé’ récupérée pour le ‘user_id’ donné. Au cours de ce processus, les contrôles de capacité ne sont pas correctement mis en œuvre pour garantir que l’utilisateur exécutant la fonction est autorisé à récupérer la valeur de « clé » donnée.

Fonction wppb_toolbox_usermeta_handler du générateur de profils

La fonction wppb_toolbox_usermeta_handler() crée un objet utilisateur et exécute un $user->get() avec les valeurs fournies par l’acteur de la menace.

Conditions préalables

Les instances vulnérables de Profile Builder doivent activer le paramètre « Activer le shortcode Usermeta » dans la section « Shortcodes » de l’onglet « Paramètres avancés » de la page « Paramètres » du plug-in.

Page des paramètres avancés du générateur de profil

Paramètre « Activer le shortcode Usermeta » activé

Exploitation

Divulgation d’information

Tout utilisateur authentifié, avec des autorisations de niveau abonné ou plus, peut envoyer une requête HTTP POST spécialement conçue au point de terminaison ‘wp-admin/admin-ajax.php’ avec le paramètre ‘action’ défini sur ‘parse-media-shortcode’ et le paramètre ‘shortcode’ contenant le shortcode ‘user_meta’ avec les attributs ‘user_id’ et ‘key’ définis.

Profile Builder POST à ​​admin-ajax.php pour récupérer le nom d'utilisateur de l'utilisateur avec un ID d'utilisateur de 1

POST à ​​admin-ajax.php pour récupérer le nom d’utilisateur de l’utilisateur avec un ID d’utilisateur de 1

Comme expliqué précédemment, la valeur de l’attribut ‘key’ est passée à un appel $user->get(). Étant donné que la méthode get() de la classe WP_User est conçue pour récupérer des informations sur l’utilisateur, n’importe quelle colonne de la table ‘wp_users’ peut être passée via cet attribut, y compris :

  • IDENTIFIANT
  • Utilisateur en ligne
  • passe d’utilisateur
  • user_nicename
  • utilisateur_email
  • URL_utilisateur
  • utilisateur_enregistré
  • user_activation_key
  • statut de l’utilisateur
  • Afficher un nom

Réinitialisation du mot de passe à l’élévation des privilèges

Le plugin Profile Builder fournit le shortcode ‘[wppb-recover-password]’ pour intégrer un formulaire de récupération de mot de passe dans une page d’un site WordPress. Le formulaire permet aux utilisateurs de soumettre leur nom d’utilisateur ou leur adresse e-mail pour recevoir un e-mail avec un lien de réinitialisation du mot de passe contenant une clé d’activation de l’utilisateur. Une fois générée, cette clé est stockée dans la colonne ‘user_activation_key’ de la table ‘wp_users’ de la base de données WordPress. En utilisant CVE-2023-0814, cette clé peut être récupérée pour n’importe quel utilisateur.

Tout d’abord, l’auteur de la menace doit générer la clé d’activation de l’utilisateur en saisissant le nom d’utilisateur ou l’adresse e-mail de l’utilisateur ciblé dans le formulaire de récupération du mot de passe et en cliquant sur le bouton « Obtenir un nouveau mot de passe ».

Formulaire de récupération de mot de passe Profile Builder

Formulaire de récupération de mot de passe Profile Builder

Ensuite, l’auteur de la menace fera une demande POST similaire à notre précédente preuve de concept d’énumération d’utilisateurs, mais cette fois en s’assurant que le « user_id » est défini sur l’ID utilisateur du nom d’utilisateur ou de l’adresse e-mail saisis dans le formulaire de récupération de mot de passe et les paramètres. l’attribut ‘key’ à ‘user_activation_key’.

Profile Builder POST sur admin-ajax.php pour récupérer la clé d'activation de l'utilisateur pour le compte admin

POST à ​​admin-ajax.php pour récupérer la clé d’activation de l’utilisateur pour le compte admin

Une fois que l’auteur de la menace a récupéré la clé d’activation de l’utilisateur, il peut revenir à la page du formulaire de récupération du mot de passe, mais cette fois avec le paramètre de requête « clé » défini sur la clé d’activation de l’utilisateur récupérée.

Page de récupération de mot de passe avec le paramètre de requête 'clé' défini sur la valeur récupérée

Page de récupération de mot de passe avec le paramètre de requête ‘clé’ défini sur la valeur récupérée

À ce stade, l’auteur de la menace doit simplement saisir un nouveau mot de passe et cliquer sur le bouton « Réinitialiser le mot de passe ». L’auteur de la menace pourra alors se connecter en utilisant le nom d’utilisateur ciblé et le nouveau mot de passe.

Calendrier

7 février 2023 – Lana Codes divulgue de manière responsable la vulnérabilité au fournisseur du plug-in et à notre programme de divulgation des vulnérabilités.
13 février 2023 – Le fournisseur publie un correctif dans la version 3.9.1 et Wordfence publie une règle de pare-feu pour résoudre la vulnérabilité. Les utilisateurs de Wordfence Premium, Care et Response reçoivent cette règle.
14 février 2023 – Wordfence publie une règle de pare-feu supplémentaire pour fournir une protection étendue contre l’exploitation. Les utilisateurs de Wordfence Premium, Care et Response reçoivent cette règle.
14 mars 2023 – Les utilisateurs gratuits de Wordfence reçoivent la première règle de pare-feu.
15 mars 2023 – Les utilisateurs gratuits de Wordfence reçoivent la deuxième règle de pare-feu.

Conclusion

Dans le post d’aujourd’hui, nous avons couvert une vulnérabilité de divulgation d’informations qui pourrait conduire à la prise de contrôle d’un compte administratif dans Cozmolabs Profile Builder, un plugin utilisé par plus de 60 000 installations WordPress. L’équipe Wordfence Threat Intelligence a publié une règle de pare-feu offrant une protection contre la vulnérabilité les 13 et 14 février 2023. Cette règle protège notre Wordfence Premium, Soins des motset Réponse Wordfence utilisateurs depuis cette date, tandis que ceux qui utilisent encore notre version gratuite recevront cette règle les 14 et 15 mars 2023.

Si vous pensez que votre site a été compromis en raison de cette vulnérabilité ou de toute autre vulnérabilité, nous proposons des services de réponse aux incidents via Soins des mots. Si vous avez besoin que votre site soit nettoyé immédiatement, Réponse Wordfence offre le même service avec une disponibilité 24/7/365 et un temps de réponse d’une heure. Ces deux produits incluent une assistance pratique au cas où vous auriez besoin d’une assistance supplémentaire. Si vous avez des amis ou des collègues qui utilisent ce plugin, partagez cette annonce avec eux et encouragez-les à mettre à jour la dernière version corrigée de Profile Builder dès que possible.

Si vous êtes chercheur en sécurité, vous pouvez divulguez-nous vos découvertes de manière responsable et obtenez un ID CVE et obtenez votre nom sur le Classement Wordfence Intelligence.


Source link