
Node.js est un environnement d'exécution open source utilisé pour implémenter des fonctionnalités serveur en JavaScript.
Un paquet logiciel spécifique de Node.js contient une fonction vulnérable liée à la désérialisation, qui l'amène à exécuter des commandes non autorisées si le client fournit un cookie spécialement conçu.
Cette vulnérabilité a été reproduite et peut potentiellement lancer un reverse shell, ce qui est possible en raison des données d'entrée non assainies lues dans un cookie de la requête d'un client. Le client peut modifier ses cookies, injecter une charge utile non sécurisée contenant une commande bash, puis l'envoyer au serveur, qui exécutera la commande aveuglément. Cela peut permettre à des utilisateurs non autorisés d'accéder aux bases de données ou à des machines entières.
Les implications éthiques de ce type de vulnérabilité résident dans les données qui peuvent être consultées dans les bases de données du serveur backend. Selon la nature des données, cela peut nuire à la sécurité d'un utilisateur et avoir un impact sur la fiabilité et la réputation d'une entreprise. C'est pourquoi il est important de détecter les vulnérabilités avant d'autres attaquants. Il existe divers outils disponibles tels que Snyk, Burp Suite et d'autres options payantes pour identifier ces vulnérabilités.
La meilleure façon d'atténuer cette vulnérabilité est de pratiquer un assainissement adéquat des entrées et de cesser toute utilisation de la fonction de désérialisation vulnérable dans node.js. Le remplacement de cette fonction vulnérable, JSON.parse, est recommandé