
Python-Exploit für die CVE-2023-30547 vm2 Sandbox-Escape-Schwachstelle. Generiert eine base64-kodierte JSON-Payload, um eine Reverse Shell aus angreifbaren Node.js-Sandbox-Umgebungen zu öffnen.
vm2 ist eine Sandbox, die nicht vertrauenswürdigen Code mit den auf die Whitelist gesetzten integrierten Modulen von Node ausführen kann. Es gibt eine Schwachstelle in der Ausnahmesanitisierung von vm2 für Versionen bis 3.9.16, die es Angreifern ermöglicht, eine unsanitisierte Host-Ausnahme innerhalb von handleException() auszulösen, die verwendet werden kann, um die Sandbox zu verlassen und beliebigen Code im Host-Kontext auszuführen. Diese Schwachstelle wurde in der Version 3.9.17 von vm2 behoben. Es sind keine Workarounds für diese Schwachstelle bekannt. Benutzern wird empfohlen, ein Upgrade durchzuführen.
Python-Code für PoC unter https://gist.github.com/leesh3288/381b230b04936dd4d74aaf90cc8bb244. Verwendet in Codify HTB.
usage: exploit.py [-h] [-u URL] [-p PORT] [-i IP]
description: Öffnet eine Reverse-Shell von einer vm2-schwachstellen Website unter Verwendung eines base64-kodierten Payloads im JSON-Format
options:
-h, --help Zeige diese Hilfemeldung an und beende
-u URL, --url URL HTTP-Adresse der Ziel-Website
-p PORT, --port PORT Port, auf dem gehört werden soll
-i IP, --ip IP Ihre IP-Adresse