Un chercheur de la société de sécurité Cyllective a vulnérabilités découvertes dans des dizaines de plugins WordPress, affectant des dizaines de milliers d’installations.

Dave Miller, qui dirige l’équipe de test d’intrusion de Cyllective, explique qu’ils ont commencé par tester des plugins sélectionnés au hasard, trouvant rapidement une vulnérabilité d’injection SQL non authentifiée.

Ils ont également découvert une série de vulnérabilités d’inclusion de fichiers locaux et d’exécution de code à distance (RCE). Cependant, comme ces problèmes ont été trouvés dans des plugins très obsolètes, l’équipe a décidé de concentrer ses efforts sur ceux qui ont reçu des mises à jour au cours des deux dernières années – environ 5 000 plugins au total.

Points finaux exposés

Recherchant particulièrement les vulnérabilités d’injection SQL non authentifiées, le chercheur a utilisé un système de balises pour identifier les plugins montrant une interaction avec la base de données WordPress ; interpolation de chaîne dans des chaînes de type SQL ; mesures de sécurité relatives aux tentatives de désinfection ; et l’exposition de terminaux non authentifiés.

Et après trois mois de recherche, dit Miller, le résultat était un total de 35 vulnérabilités, qui auraient toutes pu être exploitées par des attaquants non authentifiés, affectant environ 60 500 instances exécutant les plugins WordPress concernés.

EN RELATION Les plugins non corrigés menacent des millions de sites Web WordPress

« Bien que la grande majorité des vulnérabilités que j’ai signalées étaient des vulnérabilités d’injection SQL non authentifiées, qui auraient permis à un attaquant de vider l’intégralité du contenu de la base de données WordPress, ce n’étaient pas les plus dévastatrices », a déclaré Miller. La gorgée quotidienne.

« Le plugin sitemap-by-click5 souffrait d’une faille de mise à jour d’options arbitraires non authentifiées, qui aurait permis à un attaquant d’activer de manière malveillante la fonctionnalité d’enregistrement et de définir le rôle d’utilisateur par défaut sur celui d’un administrateur. »

Cela, dit-il, permettrait essentiellement à un attaquant non authentifié de créer un nouveau compte administrateur et de prendre le contrôle de l’instance WordPress. Et, à partir de là, l’attaquant pourrait télécharger des fichiers PHP malveillants, ce qui lui accorderait des capacités d’exécution de code à distance sur le serveur sous-jacent en tant qu’utilisateur à faibles privilèges.

À la recherche de modèles

Avec un peu plus d’ingénierie, dit Miller, la stratégie de balises de l’équipe pourrait être utilisée pour corriger des failles autres que les vulnérabilités d’injection SQL.

« De nouveaux modèles devraient être développés qui capturent les spécificités de la classe de vulnérabilité pour pouvoir les détecter », dit-il. « Certaines classes de vulnérabilité sont cependant difficiles, voire impossibles à détecter avec cette approche. »

Miller dit que, malgré le grand nombre de vulnérabilités découvertes, le processus de divulgation s’est déroulé sans heurts, l’équipe signalant chaque vulnérabilité au fur et à mesure de sa découverte – parfois jusqu’à quatre ou cinq par jour.

“WPScan [a WordPress security vendor] a coordonné le processus de communication entre toutes les parties impliquées – chercheur, auteur du plugin et l’équipe du plugin WordPress – en temps opportun », dit-il.

Et, ajoute-t-il, l’équipe travaille toujours sur plus de plugins, avec plus de vulnérabilités découvertes et divulguées de manière responsable.

« La sécurité est en fin de compte la responsabilité du développeur du plugin, et l’équipe du plugin l’encourage au mieux de ses capacités », a déclaré un porte-parole de WordPress. Le Quotidien Swg.

«À cette fin, des directives existent pour les auteurs de plugins à consulter avant de soumettre des plugins au répertoire. Tous les développeurs doivent respecter ces directives. De plus, ils ont à leur disposition un Plugin Handbook qui couvre les meilleures pratiques de sécurité.

A NE PAS MANQUER Le W3C lance les identificateurs décentralisés en tant que norme Web