
Exploit en Python para la vulnerabilidad de escape de sandbox vm2 CVE-2023-30547. Genera una carga útil JSON codificada en base64 para abrir una shell inversa desde entornos de sandbox vulnerables de Node.js.
vm2 es un sandbox que puede ejecutar código no confiable con los módulos integrados de Node en la lista blanca. Existe una vulnerabilidad en la sanitización de excepciones de vm2 para versiones hasta la 3.9.16, que permite a los atacantes lanzar una excepción de host no sanitizada dentro de handleException(), la cual puede usarse para escapar del sandbox y ejecutar código arbitrario en el contexto del host. Esta vulnerabilidad fue corregida en el lanzamiento de la versión 3.9.17 de vm2. No se conocen soluciones alternativas para esta vulnerabilidad. Se recomienda a los usuarios actualizar.
Código Python para el PoC en https://gist.github.com/leesh3288/381b230b04936dd4d74aaf90cc8bb244. Usado en 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