Un package NPM largement utilisé appelé ‘Pac-Résolveur‘ pour le langage de programmation JavaScript a été corrigé avec un correctif pour une vulnérabilité d’exécution de code à distance de haute gravité qui pourrait être utilisée de manière abusive pour exécuter du code malveillant dans les applications Node.js chaque fois que des requêtes HTTP sont envoyées.
Le défaut, suivi comme CVE-2021-23406, a un indice de gravité de 8.1 sur le système de notation de vulnérabilité CVSS et affecte les versions Pac-Resolver antérieures à 5.0.0.
Une configuration automatique de proxy (PAC) est une fonction JavaScript qui détermine si les requêtes du navigateur Web doivent être acheminées directement vers la destination ou transmises à un serveur proxy Web pour un nom d’hôte donné. Les fichiers PAC sont la façon dont les règles de proxy sont distribuées dans les environnements d’entreprise.
« Ce package est utilisé pour la prise en charge des fichiers PAC dans Pac-Proxy-Agent, qui est utilisé à son tour dans Mandataire, qui a ensuite été utilisé partout comme package standard pour la détection automatique et la configuration du proxy HTTP dans Node.js », Tim Perry mentionné dans un article publié à la fin du mois dernier. « C’est très populaire : Proxy-Agent est utilisé partout, de la boîte à outils CDK d’AWS au SDK Mailgun en passant par la CLI Firebase. »
CVE-2021-23406 a à voir avec la façon dont Pac-Proxy-Agent ne sandbox pas correctement les fichiers PAC, ce qui entraîne un scénario dans lequel un fichier PAC non fiable peut être abusé pour sortir complètement du sandbox et exécuter du code arbitraire sur le fonctionnement sous-jacent système. Cependant, cela nécessite que l’attaquant réside sur le réseau local, ait la capacité de falsifier le contenu du fichier PAC ou l’enchaîne avec une deuxième vulnérabilité pour modifier la configuration du proxy.
« Il s’agit d’une attaque bien connue contre le module VM, et cela fonctionne parce que Node n’isole pas complètement le contexte du » bac à sable « , car il n’essaie pas vraiment de fournir un isolement sérieux », a déclaré Perry. « La solution est simple : utilisez un vrai bac à sable au lieu du Module VM intégré. »
Red Hat, dans un conseil indépendant, mentionné le package vulnérable est livré avec son produit Advanced Cluster Management for Kubernetes, mais a noté qu’il n’est « actuellement pas au courant du vecteur pour déclencher la vulnérabilité dans le composant affecté, de plus le composant affecté est protégé par l’authentification de l’utilisateur réduisant l’impact potentiel de cette vulnérabilité. «