Analyse technique de CVE-2020-12675 (nouveau contournement de correction de vulnérabilité dans MapPress)

sites Web, ce qui pourrait entraîner l'exécution de commandes à distance. Suite à notre politique de divulgation responsable, nous avons contacté le développeur pour signaler le problème et travailler avec lui pour résoudre le problème sous-jacent ainsi que la vulnérabilité de MITRE (CVE-2020-12675). Le développeur est félicité pour avoir répondu rapidement et travaillé ouvertement avec nous pour résoudre le problème.

Plugin MapPress

La fonctionnalité vulnérable a été identifiée à l'origine dans les versions antérieures à 2.53.9 du plugin, comme décrit dans CVE-2020-12077. Le plugin permet aux propriétaires de sites de créer des modèles personnalisés, écrits en PHP, pour contrôler la façon dont les cartes sont affichées. Le manque de capacités ou de vérifications de nonce identifié par le rapport de vulnérabilité d'origine a été considéré comme résolu dans la version 2.53.9 du plugin. Malheureusement, les protections mises en œuvre pour CVE-2020-12077 n'étaient pas suffisantes pour résoudre le problème sous-jacent et le plugin est resté vulnérable. Le correctif implémenté a introduit une vérification nonce, mais aucune vérification de capacité, dans chacune des fonctions AJAX. Le contournement exigeait alors simplement qu'une valeur nonce valide soit soumise avec l'appel AJAX pour exploiter à nouveau la fonctionnalité de téléchargement vulnérable.

Analyse technique

La cause première de la vulnérabilité est un manque de vérification des capacités, comme souligné dans le rapport d'origine, dans ce qui devrait être une fonctionnalité restreinte. La mise en œuvre d'une vérification de nonce corrige le potentiel d'attaques de type CSRF contre la fonctionnalité de téléchargement, mais ne fait pas grand-chose pour vérifier que l'utilisateur demandeur est autorisé à utiliser ladite fonctionnalité. En passant, tout en examinant la vulnérabilité que nous avons déterminée le manque de validation d'entrée permettait des caractères de traversée de chemin, ce qui permettrait également aux utilisateurs disposant de permissions minimales d'afficher ou de supprimer des fichiers PHP arbitraires. Cela pourrait fournir une alternative pour la reprise du site en divulguant d'abord les informations de la base de données, puis en supprimant le fichier « wp-config.php » et en remettant le site en mode d'installation.Chemin: /mappress-google-maps-for-wordpress/mappress_template.php [Lines: 35-73]Les modifications ci-dessus empêchent les demandes de téléchargement AJAX aveugles d'être effectuées, car un nonce valide doit d'abord être recherché et soumis avec le téléchargement. Dans le cadre du processus de localisation de script, des valeurs nonce valides sont générées et incluses dans le cadre d'un bloc de script sur toute page qui inclut du contenu de carte MapPress. Tout ce qu'un attaquant doit faire est de visiter une page du site cible qui contient le contenu de la carte et de récolter la valeur nonce générée, exposant à nouveau la fonctionnalité AJAX aux attaquants avec des autorisations minimales sur le site.Chemin: /mappress-google-maps-for-wordpress/mappress.php [Lines: 418-432]

Assainissement et atténuation

La principale résolution de cette vulnérabilité est de mettre à jour la dernière version du plugin. Si cela n'est pas possible, les options d'atténuation peuvent inclure:

  • Application de correctifs virtuels à l'aide d'un WAF pour filtrer les demandes AJAX destinées à la fonctionnalité AJAX vulnérable (« mapp_tpl_get » / « mapp_tpl_save » / « mapp_tpl_delete »)

Divulgation responsable

Quoi Quand Contact initial avec le vendeur 30 avril 2020 Vulnérabilité divulguée au développeur 30 avril 2020 Soumettre à un onglet, CVE attribué 6 mai 2020 Publication de la version 2.54.6, Confirmé n'est plus vulnérable 6 mai 2020 Embargo sur la divulgation responsable levé 27 mai 2020 Divulgation publique 28 mai 2020

Tags: