Vulnérabilité dans le package pac-resolver NPM avec 3 millions de téléchargements par semaine

Le package NPM pac-resolver, qui compte plus de 3 millions de téléchargements par semaine, présente une vulnérabilité (CVE-2021-23406) qui permet à son code JavaScript d'être exécuté dans le contexte de l'application lors de l'envoi de requêtes HTTP à partir de projets Node.js qui prend en charge la fonction de configuration automatique du serveur proxy.

Le package pac-resolver analyse les fichiers PAC qui incluent un script de configuration automatique du proxy. Le fichier PAC contient du code JavaScript standard avec une fonction FindProxyForURL qui définit la logique de choix d'un proxy en fonction de l'hôte et de l'URL demandée. L'essence de la vulnérabilité est que pour exécuter ce code JavaScript dans pac-resolver, l'API VM fournie dans Node.js a été utilisée, ce qui vous permet d'exécuter du code JavaScript dans un contexte différent du moteur V8.

L'API spécifiée est explicitement marquée dans la documentation comme n'étant pas destinée à exécuter du code non fiable, car elle ne fournit pas une isolation complète du code en cours d'exécution et permet d'accéder au contexte d'origine. Le problème a été résolu dans pac-resolver 5.0.0, qui a été déplacé pour utiliser la bibliothèque vm2, qui offre un niveau d'isolation plus élevé adapté à l'exécution de code non fiable.

Vulnérabilité dans le package pac-resolver NPM avec 3 millions de téléchargements par semaine

Lors de l'utilisation d'une version vulnérable de pac-resolver, un attaquant via la transmission d'un fichier PAC spécialement conçu peut réaliser l'exécution de son code JavaScript dans le contexte du code d'un projet utilisant Node.js, si ce projet utilise des bibliothèques qui ont des dépendances avec pac-résolveur. La plus populaire des bibliothèques problématiques est Proxy-Agent, répertoriée comme dépendance de 360 ​​projets, notamment urllib, aws-cdk, mailgun.js et firebase-tools, totalisant plus de trois millions de téléchargements par semaine.

Si une application qui dépend de pac-resolver charge un fichier PAC fourni par un système prenant en charge le protocole de configuration automatique du proxy WPAD, alors les attaquants ayant accès au réseau local peuvent utiliser la distribution des paramètres de proxy via DHCP pour insérer des fichiers PAC malveillants.

Source: opennet.ru

Ajouter un commentaire