CVE-2023-30547

vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. There exists a vulnerability in exception sanitization of vm2 for versions up to 3.9.16, allowing attackers to raise an unsanitized host exception inside handleException() which can be used to escape the sandbox and run arbitrary code in host context. This vulnerability was patched in the release of version 3.9.17 of vm2. There are no known workarounds for this vulnerability. Users are advised to upgrade.

Description

Python code for PoC in https://gist.github.com/leesh3288/381b230b04936dd4d74aaf90cc8bb244. Used in Codify HTB.

Usage

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