WordPress: le plugin ReDi Restaurant Reservation concerné par un bug XSS

Un bug facile à exploiter affectant le plugin de WordPress ReDi Restaurant Reservation permet aux attaquants non authentifiés de voler les données de réservation et les informations personnelles identifiables du client en soumettant simplement un extrait de code JavaScript malveillant dans le champ de commentaire de réservation.

La faille affecte les versions de ReDi Restaurant Reservation antérieures à 21.0307, avec la version corrigée (v. 21.0426) du plugin disponible au téléchargement. La vulnérabilité (CVE-2021-24299) est un bogue persistant de cross-site scripting (XSS). La faille n’est pas encore notée.

Une divulgation publique de preuve de concept du bogue ReDi a été publiée avec la divulgation publique officielle retardée d’un mois «en raison de la gravité de la vulnérabilité», selon Bastijn Ouwendijk, crédité pour avoir trouvé le bogue. Le chercheur a alerté les créateurs du plugin, Catz Soft, le 15 avril. Un correctif était disponible le 25 avril.

«[La faille] permet à des attaquants malveillants, par exemple, de voler la clé API du plugin et potentiellement de voler des informations sur les clients qui ont effectué des réservations, de voler des cookies ou d’autres données sensibles», selon Ouwendijk dans un rapport technique et une preuve de concept du bug.

ReDi Restaurant Reservation

Les clés d’interface de programmation d’application (API) qui fuient ont été une cible populaire des pirates dans des dizaines d’attaques et ont été responsables d’encore plus de correctifs de fournisseurs. Twitter, le pare-feu d’applications Web Cloud d’Imperva et récemment 30 applications mHealth populaires ont tous été confrontés à des problèmes de clé d’API non sécurisés.

Un bug facilement exploitable

Un examen du bogue du plug-in ReDi Restaurant Reservation montre comment un adversaire peut lancer une attaque simplement en utilisant une charge utile JavaScript – une charge de moins de 250 caractères – pour exploiter le bogue XSS.

ReDi Comment form 226x300 1

«Comment fonctionne cette vulnérabilité? Le plugin fournit aux utilisateurs la fonctionnalité d’effectuer une réservation dans restaurant. Un utilisateur n’a qu’à visiter la page de réservation », a expliqué le chercheur. Ensuite, l’attaquant effectue une réservation et dans le champ «Commentaire» saisit le JavaScript malveillant. Étant donné que le texte et le code JavaScript ne sont pas nettoyés ou rendus inoffensifs, les données des commentaires de l’utilisateur «sont traitées et enregistrées dans des variables locales».

«Ensuite, les variables enregistrées sont poussées vers la base de données. Notez également ici que les variables ne sont pas nettoyées ou validées avant d’être poussées vers la base de données. Cela signifie que les chaînes de caractères que nous soumettons via le formulaire pour les variables UserName, UserPhone, UserEmail et UserComments seront enregistrées dans la base de données sans changement », a écrit le chercheur.

La charge utile est exécutée lorsqu’un administrateur de site WordPress ou un propriétaire de restaurant visualise les réservations via la page Web de la plate-forme.

«Il s’agit d’une page Web sur laquelle vous pouvez consulter les réservations effectuées pour une période donnée. Cette page n’est pas une page Web WordPress, mais une page externe chargée dans une iframe, comme on peut le voir dans le code PHP », a déclaré le chercheur.

PHP (Hypertext Preprocessor) est un langage de script utilisé pour générer du contenu dynamique exécuté sur un serveur Web.

«L’URL chargée dans l’iframe prend l’url https[://]coming.reservationdiary[.]eu/Entry/ et l’ajoute à la clé API enregistrée dans votre plugin ReDi Restaurant Reservation. Lorsque vous visitez cette URL, elle montre toutes les réservations effectuées pour une période de temps spécifique », a écrit Ouwendijk.

Vous pourriez aussi aimer
Laisser un commentaire