La société d’infrastructure Web et de sécurité de site Web Cloudflare a corrigé le mois dernier une vulnérabilité critique dans sa bibliothèque CDNJS qui est utilisé par 12,7% de tous les sites Web sur Internet.
CDNJS est un réseau de diffusion de contenu (CDN) gratuit et à code source ouvert qui dessert environ 4 041 bibliothèques JavaScript et CSS, ce qui en fait le deuxième plus populaire CDN pour JavaScript après les bibliothèques hébergées par Google.
La faiblesse concernait un problème dans le serveur de mise à jour de la bibliothèque CDNJS qui pourrait potentiellement permettre à un attaquant d’exécuter des commandes arbitraires, conduisant à un compromis complet.
La vulnérabilité a été découverte et signalée par le chercheur en sécurité RyotaK le 6 avril 2021. Il n’y a aucune preuve d’attaques dans la nature abusant de cette faille.
Plus précisément, la vulnérabilité fonctionne en publiant des packages sur le CDNJS de Cloudflare à l’aide de GitHub et npm, en l’utilisant pour déclencher un vulnérabilité de traversée de chemin, et finalement tromper le serveur pour qu’il exécute du code arbitraire, réalisant ainsi l’exécution de code à distance.
Il convient de noter que l’infrastructure CDNJS comprend des fonctionnalités pour automatiser les mises à jour de la bibliothèque en exécutant périodiquement des scripts sur le serveur pour télécharger les fichiers pertinents à partir du référentiel Git géré par l’utilisateur ou du registre de packages npm.
En découvrant un problème avec la façon dont le mécanisme désinfecte les chemins de paquets, RyotaK trouvé que « le code arbitraire peut être exécuté après avoir parcouru le chemin du fichier .tgz publié dans npm et écrasé le script qui est exécuté régulièrement sur le serveur ».
En d’autres termes, le but de l’attaque est de publier une nouvelle version d’un package spécialement conçu dans le référentiel, qui est ensuite récupéré par le serveur de mise à jour de la bibliothèque CDNJS pour publication, en copiant le contenu du package malveillant dans un fichier de script régulièrement exécuté hébergé sur le serveur, obtenant ainsi l’exécution de code arbitraire.
« Bien que cette vulnérabilité puisse être exploitée sans aucune compétence particulière, elle pourrait avoir un impact sur de nombreux sites Web », a déclaré RyotaK. « Étant donné qu’il existe de nombreuses vulnérabilités dans la chaîne d’approvisionnement, qui sont faciles à exploiter mais ont un impact important, je pense que c’est très effrayant. »
Ce n’est pas la première fois que le chercheur en sécurité découvre des failles critiques dans la manière dont les mises à jour des référentiels de logiciels sont gérées. En avril 2021, RyotaK a révélé une vulnérabilité critique dans le référentiel officiel Homebrew Cask qui aurait pu être exploitée par un attaquant pour exécuter du code arbitraire sur les machines des utilisateurs.