Les chercheurs en sécurité ont découvert une nouvelle vulnérabilité appelée ParseThru affectant les applications basées sur Golang qui pourraient être exploitées pour obtenir un accès non autorisé aux applications basées sur le cloud. « La vulnérabilité récemment découverte permet à un acteur menaçant de contourner les validations sous certaines conditions, en raison de l’utilisation de méthodes d’analyse d’URL non sécurisées construites dans le langage », a déclaré la société israélienne de cybersécurité Oxeye dans un rapport partagé avec breachtrace. Le problème, à la base, est lié aux incohérences résultant des changements introduits dans la logique d’analyse d’URL de Golang qui est implémentée dans la bibliothèque « net/url ». Alors que les versions du langage de programmation antérieures à 1.17 traitaient les points-virgules comme un délimiteur de requête valide (par exemple, example.com?a=1;b=2&c=3), ce comportement a depuis été modifié pour générer une erreur lors de la recherche d’une chaîne de requête contenant un point-virgule.

« Les packages net/url et net/http acceptaient « ; » (point-virgule) comme séparateur de paramètres dans les requêtes d’URL, en plus de « & » (esperluette) », selon les notes de version de la version 1.17 publiées en août dernier. « Désormais, les paramètres avec des points-virgules non codés en pourcentage sont rejetés et les serveurs net/http consignent un avertissement dans ‘Server.ErrorLog’ lorsqu’ils en rencontrent un dans une URL de demande. »

Le problème survient lorsqu’une API publique basée sur Golang et construite sur la version 1.17 ou ultérieure communique avec un service backend exécutant une version antérieure, ce qui conduit à un scénario dans lequel un acteur malveillant pourrait faire passer des requêtes incorporant des paramètres de requête qui seraient autrement rejetés. En termes simples, l’idée est d’envoyer des requêtes spécialement conçues contenant un point-virgule dans la chaîne de requête, qui est ignorée par l’API Golang en contact avec l’utilisateur mais est traitée par le service interne. Ceci, à son tour, est rendu possible grâce au fait que l’une des méthodes chargées d’obtenir la chaîne de requête analysée supprime silencieusement le message d’erreur renvoyé. Oxeye a déclaré avoir identifié plusieurs instances de ParseThru dans des projets open source tels que Harbor, Traefik et Skipper, ce qui a permis de contourner les validations mises en place et d’effectuer des actions non autorisées. Les problèmes ont été résolus après une divulgation responsable aux fournisseurs respectifs. Ce n’est pas la première fois que l’analyse d’URL pose un problème de sécurité. Plus tôt en janvier, Claroty et Snyk ont ​​révélé jusqu’à huit failles dans des bibliothèques tierces écrites en langages C, JavaScript, PHP, Python et Ruby, résultant d’une confusion dans l’analyse des URL.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *