La bibliothèque JavaScript vm2 vient de publier deux nouveaux correctifs pour pallier deux vulnérabilités critiques, CVE-2023-29199 et CVE-2023-30547, les deux notés 9.8 sur le système de notation CVSS. versions 3.9.16 et 3.9.17, respectivement, contiennent les correctifs pour les bogues qui permettent à un intrus de sortir du bac à sable et d'exécuter du code dans le contexte de l'hôte.
SeungHyun Lee, le chercheur en sécurité chargé de découvrir et de signaler les failles, a également publié des exploits PoC. Cela survient peu de temps après une autre faille d'échappement du bac à sable (CVE-2023-29017, CVSS 9.8) a été adressé. Les chercheurs d'Oxeye ont identifié une vulnérabilité d'exécution de code à distance particulièrement grave (CVE-2022-36067, Note CVSS: 9.8) en vm2 en décembre dernier, nom de code Sandbreak.
CVE-2023-29199
versions vm2 jusqu'à 3.9.15 sont vulnérables à un exploit qui permet aux pirates de contourner le `handleException()` logique de nettoyage des exceptions. Ce contournement permet la fuite d'exceptions d'hôte non nettoyées qui fournissent ensuite le moyen d'échapper au bac à sable et exécuter du code dans le contexte d'accueil. Le problème a été corrigé dans la version 3.9.16.
CVE-2023-30547
La version `3.9.17` de `vm2` inclut un correctif pour une vulnérabilité dans la désinfection des exceptions qui était présente dans toutes les versions précédentes jusqu'à `3.9.16`. Cette vulnérabilité permettait aux attaquants d'utiliser une exception d'hôte non nettoyée dans `handleException()` pour échapper au bac à sable et exécuter du code arbitraire dans le contexte de l'hôte. A partir de maintenant, aucune solution alternative n'existe, les utilisateurs sont donc fortement invités à passer à la version la plus récente.
Qu'est-ce que la bibliothèque JavaScript vm2?
vm2 est une bibliothèque sandbox JavaScript populaire utilisée par différents programmes, comme les IDE, éditeurs de code, et outils de sécurité, qui permet au code de s'exécuter partiellement sur des serveurs Node.js isolés tout en protégeant les ressources système et les données externes contre les accès non autorisés.