
Exploit Python pour la vulnérabilité d'échappement du sandbox vm2 CVE-2023-30547. Génère une charge utile JSON encodée en base64 pour ouvrir un reverse shell à partir d'environnements sandbox Node.js vulnérables.
vm2 est un bac à sable qui permet d'exécuter du code non fiable avec les modules intégrés de Node.js en liste blanche. Il existe une vulnérabilité dans l'assainissement des exceptions de vm2 pour les versions jusqu'à 3.9.16, permettant aux attaquants de déclencher une exception hôte non assainie dans handleException(), ce qui peut être utilisé pour s'échapper du bac à sable et exécuter du code arbitraire dans le contexte de l'hôte. Cette vulnérabilité a été corrigée dans la version 3.9.17 de vm2. Il n'existe aucune solution de contournement connue pour cette vulnérabilité. Il est conseillé aux utilisateurs de mettre à jour.
Code Python pour le PoC dans https://gist.github.com/leesh3288/381b230b04936dd4d74aaf90cc8bb244. Utilisé dans Codify HTB.
usage: exploit.py [-h] [-u URL] [-p PORT] [-i IP]
description: Opens a reverse shell from a vm2 vulnerable website using a base64-encoded payload in JSON format
options:
-h, --help show this help message and exit
-u URL, --url URL HTTP address of the destination website
-p PORT, --port PORT Port to listen on
-i IP, --ip IP Your IP address