L’article d’aujourd’hui est la deuxième partie d’un article de blog en deux parties. Il décrit une vulnérabilité de script inter-sites dans le plugin Easy Social Icons qui exploite le PHP_SELF variable. Dans le post d’hier, nous avons décrit un autre plugin, underConstruction, souffrant d’une vulnérabilité similaire liée à l’utilisation de PHP_SELF.

Le 16 août 2021, l’équipe Wordfence Threat Intelligence a tenté d’initier la divulgation d’une vulnérabilité reflétée de Cross-Site Scripting dans Icônes sociales faciles, un plugin WordPress avec plus de 40 000 installations.

Après 2 semaines sans réponse, nous avons transmis le problème à l’équipe des plugins WordPress le 30 août 2021. Un patch initial, la version 3.0.9, a été publié le lendemain, le 31 août 2021.

Une règle de pare-feu protégeant contre cette vulnérabilité a été publiée pour les utilisateurs de Wordfence Premium le 16 août 2021 et est devenue disponible pour les sites utilisant la version gratuite de Wordfence le 15 septembre 2021.

Les nouvelles versions du plugin contiennent également des correctifs pour des vulnérabilités XSS supplémentaires, et tous les utilisateurs de Wordfence sont protégés contre ces vulnérabilités par la protection XSS intégrée de notre pare-feu. Si vous n’utilisez pas Wordfence, nous vous recommandons de passer immédiatement à la version 3.1.3 du plugin Easy Social Icons.


La page d’options du plug-in Easy Social Icons contenait un code JavaScript conçu pour afficher une boîte de dialogue de confirmation lorsqu’un utilisateur supprimait une icône, puis la redirigeait vers une URL qui effectuerait la suppression finale. Il a construit cette URL en utilisant la valeur du $_SERVER['PHP_SELF'] variable. Cela diffère légèrement de la vulnérabilité d’hier, qui utilisait $GLOBALS[‘PHP_SELF’].

			function show_confirm(title, id)
			{
				var rpath1 = "";
				var rpath2 = "";
				var r=confirm('Are you confirm to delete "'+title+'"');
				if (r==true)
				{
					rpath1 = '<?php echo $_SERVER['PHP_SELF'].'?page=cnss_social_icon_page'; ?>';
					rpath2 = '&cnss-delete=y&id='+id;
					window.location = rpath1+rpath2;
				}
			}

La principale différence entre $GLOBALS et $_SERVER est-ce $_SERVER est une variable PHP « superglobale » intégrée qui contient les valeurs fournies par le serveur Web (comme Apache ou Nginx) tandis que $GLOBALS est une variable PHP intégrée qui contient le contenu de tous des variables « superglobales » de PHP, y compris $_GET et $_POST, ainsi que le contenu de $_SERVER.

Comme pour la vulnérabilité d’hier, les sites exécutant Apache et modPHP stockent des informations de chemin supplémentaires après le nom de fichier dans PHP_SELF par défaut, ce qui signifie qu’un attaquant peut ajouter du code JavaScript malveillant au chemin lui-même. Depuis PHP_SELF a été repris entre guillemets à l’intérieur d’un JavaScript existant, cependant, il était également nécessaire de fermer la balise de script existante afin d’exploiter cette vulnérabilité, par exemple :

<siteURL>/wp-admin/admin.php//index"/></script><script>alert(/xss/);</script>?page=cnss_social_icon_page

Alors que les sites fonctionnant sur Apache+modPHP, qui est une configuration extrêmement courante, sont les plus susceptibles d’être vulnérables, d’autres configurations peuvent également être vulnérables selon la façon dont elles ont été configurées.

Comme pour la plupart des vulnérabilités XSS reflétées affectant WordPress, un lien conçu pourrait être utilisé pour exécuter JavaScript dans une session d’administrateur, qui pourrait être utilisé pour prendre le contrôle d’un site en ajoutant une porte dérobée à un plugin ou à un fichier de thème ou en ajoutant un utilisateur administrateur malveillant.

Chronologie

16 août 2021 – Wordfence Threat Intelligence trouve la vulnérabilité et tente de contacter le développeur du plugin. Nous publions une règle de pare-feu pour protéger les utilisateurs de Wordfence Premium.
30 août 2021 – Après 2 semaines sans réponse, nous contactons l’équipe des plugins WordPress.
31 août 2021– Une version corrigée du plugin est disponible.
15 septembre 2021 – Les sites exécutant la version gratuite de Wordfence reçoivent la règle de pare-feu.

Conclusion

Dans l’article d’aujourd’hui, nous avons couvert une vulnérabilité reflétée de Cross-Site Scripting (XSS) dans le plugin Easy Social Icons qui pourrait être utilisé pour exécuter du JavaScript malveillant dans une session d’administrateur et prendre le contrôle d’un site.

Wordfence Premium les utilisateurs sont protégés contre cette vulnérabilité depuis le 16 août 2021. Les sites exécutant toujours la version gratuite de Wordfence ont reçu la même protection le 15 septembre 2021. Nous recommandons fortement de mettre à jour vers la dernière version disponible, 3.1.3, dès que possible, car il contient également des correctifs supplémentaires, bien que le pare-feu Wordfence bloque l’exploitation de ces vulnérabilités supplémentaires via sa protection XSS intégrée.

Si vous pensez que votre site a été compromis à la suite de cette attaque ou de toute autre attaque, Wordfence offre des services professionnels de nettoyage de site. Nos analystes de sécurité suppriment tous les logiciels malveillants trouvés et déterminent également le vecteur d’intrusion si possible, ainsi que des recommandations pour prévenir de futures infections.

Si quelqu’un que vous connaissez utilise le plugin Easy Social Icons, veuillez lui transmettre cet article et l’encourager à mettre à jour. Si vous souhaitez être alerté lorsque nous publions de nouvelles recherches sur les menaces, vous pouvez rejoindre notre liste de diffusion sur cette page.


Source link