Vulnérabilité d’injection d’objet PHP

Le 18 avril 2022, l’équipe Wordfence Threat Intelligence a lancé le processus de divulgation responsable d’une vulnérabilité d’injection d’objet dans le plugin Booking Calendar pour WordPress, qui compte plus de 60 000 installations.

Nous avons reçu une réponse le jour même et envoyé notre divulgation complète tôt le lendemain, le 19 avril 2022. Une version corrigée du plugin, 9.1.1, a été publiée le 21 avril 2022.

Nous avons publié une règle de pare-feu pour protéger les clients Wordfence Premium , Wordfence Care et Wordfence Response le 18 avril 2022. Les sites exécutant encore la version gratuite de Wordfence recevront la même protection le 18 mai 2022. Nous recommandons à tous les utilisateurs de Wordfence de mettre à jour vers la version corrigée, 9.1.1, dès que possible car cela éliminera entièrement la vulnérabilité.


Description : Désérialisation non sécurisée/Injection d’objet PHP
Plugin concerné : Booking Calendar
Plugin Slug : booking
Développeur du plugin : wpdevelop, oplugins
Versions concernées : <= 9.1
ID CVE : CVE-2022-1463
Score CVSS : 8.1(High)
Vecteur CVSS : CVSS:3.1 /AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Chercheur(s ) : Ramuel Gall
Version entièrement corrigée : 9.1.1

Le plugin Booking Calendar permet aux propriétaires de sites d’ajouter un système de réservation à leur site, qui inclut la possibilité de publier un calendrier flexible montrant les réservations et les ouvertures existantes à l’aide d’un shortcode, [bookingflextimeline].

La chronologie flexible inclut la possibilité de configurer les préférences et les options d’affichage lors de l’affichage de la chronologie publiée. Certaines de ces options ont été transmises au format de données sérialisées de PHP et non sérialisées par la define_request_view_params_from_paramsfonction dans core/timeline/v2/wpbc-class-timeline_v2.php.

Un attaquant pourrait contrôler les données sérialisées via plusieurs méthodes :

  1. Si une chronologie était publiée, un attaquant non authentifié pourrait obtenir le nonce requis pour envoyer une requête AJAX avec l’action définie sur WPBC_FLEXTIMELINE_NAVet un timeline_obj[options]paramètre défini sur un objet PHP sérialisé.
  2. Tout attaquant authentifié pourrait utiliser l’ parse-media-shortcodeaction AJAX intégrée pour exécuter le [bookingflextimeline]shortcode, en ajoutant un optionsattribut dans le shortcode défini à un objet PHP sérialisé. Cela fonctionnerait même sur des sites sans calendrier publié.
  3. Un attaquant avec des privilèges de niveau contributeur ou supérieur pourrait également intégrer le [bookingflextimeline]shortcode contenant un optionsattribut malveillant dans une publication et l’exécuter en le prévisualisant, ou obtenir le WPBC_FLEXTIMELINE_NAV nonce en prévisualisant le [bookingflextimeline]shortcode puis en utilisant la méthode n°1.

Chaque fois qu’un attaquant peut contrôler des données non sérialisées par PHP, il peut injecter un objet PHP avec les propriétés de son choix. Si une « chaîne POP » est également présente, elle peut permettre à un attaquant d’exécuter du code arbitraire, de supprimer des fichiers ou de détruire ou de prendre le contrôle d’un site Web vulnérable. Heureusement, aucune chaîne POP n’était présente dans le plugin Booking, donc un attaquant aurait besoin d’un peu de chance ainsi que de recherches supplémentaires pour exploiter cette vulnérabilité. Néanmoins, les chaînes POP apparaissent dans un certain nombre de bibliothèques de logiciels populaires, de sorte que de nombreux sites pourraient encore être exploités si un autre plugin utilisant l’une de ces bibliothèques est installé.

Malgré l’absence de chaîne POP et la complexité de l’exploitation, les conséquences potentielles d’une attaque réussie sont si graves que les vulnérabilités d’injection d’objets justifient toujours un score CVSS « élevé ». Nous avons écrit sur les vulnérabilités d’injection d’objets dans le passé si vous souhaitez en savoir plus sur leur fonctionnement.

Chronologie

18 avril 2022 – Nous publions une règle de pare-feu pour protéger les clients Wordfence Premium, Care et Response. Nous lançons le processus de divulgation. Le développeur du plugin vérifie la méthode de contact.
19 avril 2022 – Nous envoyons la divulgation complète au développeur du plugin.
21 avril 2022 – Une version corrigée du plugin Booking Calendar, 9.1.1, est publiée.
18 mai 2022 – La règle de pare-feu devient disponible pour les utilisateurs gratuits de Wordfence.

Conclusion

Dans le post d’aujourd’hui, nous avons couvert une vulnérabilité d’injection d’objet dans le plugin Booking Calendar. Les clients Wordfence Premium , Wordfence Care et Wordfence Response sont entièrement protégés contre cette vulnérabilité. Les sites exécutant la version gratuite de Wordfence recevront la même protection le 18 mai 2022, mais auront la possibilité de mettre à jour le plug-in du calendrier de réservation vers la version corrigée 9.1.1 pour éliminer immédiatement le risque.

Si vous pensez que votre site a été compromis à cause de cette vulnérabilité ou de toute autre vulnérabilité, nous proposons des services de réponse aux incidents via Wordfence Care . Si vous avez besoin que votre site soit nettoyé immédiatement, Wordfence Response 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.