Pollution de prototype dans express-fileupload
24 août 2020
0 minutes de lectureBienvenue dans le Snyk Monthly Vulnerability Profile. Dans cette série, Snyk revient sur les vulnérabilités découvertes par notre équipe de recherche en sécurité ou qui lui ont été signalées par l’équipe de recherche en sécurité. Chaque mois, nous choisissons une vulnérabilité marquante et racontons son histoire : sa découverte, son analyse et son signalement. Nous mettons en lumière les chercheurs, les développeurs et les utilisateurs qui contribuent à repérer et à corriger les vulnérabilités dans la communauté open source.
Ce mois-ci, nous nous penchons sur une vulnérabilité de pollution de prototype découverte dans express-fileupload.
Vulnérabilité : pollution de prototype dans express-fileupload
CVE attribué : CVE-2020-7699
Analyste Snyk : Sam Sanoop
Découverte par : un chercheur connu sous le pseudonyme po6ix
Une vulnérabilité de pollution de prototype a récemment été découverte dans le célèbre package express-fileupload et consignée sous forme de problème dans le dépôt GitHub.
La fonctionnalité de signalement des problèmes peut permettre aux développeurs et aux chercheurs en sécurité d’informer les responsables de packages des bogues ou vulnérabilités de sécurité qu’ils découvrent. Toutefois, bien que ces informations soient consultables publiquement, elles sont peu diffusées auprès des communautés de la sécurité et du développement qui pourraient avoir besoin d’en être informées.
Alors, comment faire en sorte que les vulnérabilités de sécurité graves consignées sous forme de problèmes dans un dépôt soient communiquées plus largement ? Cette histoire de pollution de prototype dans express-fileupload montre comment l’équipe de recherche de Snyk contribue à répondre à cette préoccupation.
Examen détaillé de la vulnérabilité de pollution de prototype
Le 25 juillet 2020, un chercheur connu sous le pseudonyme po6ix a signalé un problème dans le dépôt GitHub du package express-fileupload. Ce problème décrit une vulnérabilité de pollution de prototype découverte par le chercheur dans le package. Il montre également comment cette vulnérabilité pourrait permettre une exécution de code à distance via une fonction conçue pour analyser les informations de chemin d’accès des fichiers. Le chercheur a aussi publié sur son site un article de blog détaillant la vulnérabilité et présentant des démonstrations de preuve de concept (POC).

L’équipe de recherche en sécurité de Snyk recherche régulièrement dans les dépôts GitHub publics les problèmes décrivant des failles de sécurité potentielles. Son attention a été attirée par une série de problèmes signalés par po6ix en très peu de temps, dont celui concernant le package express-fileupload. Sam Sanoop, analyste en sécurité chez Snyk, a contacté po6ix pour obtenir davantage d’informations sur la vulnérabilité et proposer l’aide de Snyk pour attribuer des CVE aux différentes vulnérabilités découvertes par le chercheur.
Après avoir discuté des vulnérabilités avec po6ix, Sam a repris les preuves de concept présentées dans l’article de blog pour reconstituer les attaques. Snyk a ainsi pu confirmer la portée et l’exploitabilité de la vulnérabilité.
Après avoir confirmé les détails de la vulnérabilité, Sam lui a attribué un score CVSS de 7,5, notamment en raison du caractère distant des attaques. Selon l’article de blog de po6ix, à la fin juillet 2020, le package express-fileupload avait été téléchargé près de 8 millions de fois. La gravité de la vulnérabilité, conjuguée à la popularité du package vulnérable, rendait cette découverte particulièrement préoccupante.
Sam a attribué le CVE-2020-7699 à la vulnérabilité et rédigé un rapport détaillé, qu’il a ajouté à la Snyk Vulnerability Database. Le chercheur à l’origine de la découverte, po6ix, y est également dûment crédité dans la base de données des vulnérabilités de Snyk.

Entre-temps, le responsable du package a bien corrigé la vulnérabilité de sécurité dans la version 1.1.8. Toutefois, le problème n’était pas entièrement résolu et un autre utilisateur de GitHub a ouvert un problème de suivi. Il y indiquait qu’une vulnérabilité par déni de service persistait dans le package et reposait sur des éléments de la même attaque. Le 6 août 2020, le responsable a publié la version 1.1.10 du package, dont Snyk a confirmé qu’elle corrigeait bien la vulnérabilité.
Cette histoire n’est qu’un exemple de la manière dont l’équipe de recherche de Snyk collabore avec les communautés du développement et de la sécurité. Notre objectif n’est pas seulement de faire corriger les vulnérabilités dans les packages, mais aussi de favoriser une communication ouverte sur ces vulnérabilités afin que chacun puisse sécuriser ses logiciels plus facilement.
Vous avez manqué nos précédents articles MVP ? Découvrez-les ci-dessous :
