
CVE-2023-30547 vm2 샌드박스 이스케이프 취약점을 위한 Python 익스플로잇. 취약한 Node.js 샌드박스 환경에서 리버스 셸을 열기 위해 base64로 인코딩된 JSON 페이로드를 생성합니다.
vm2는 허용된 Node 내장 모듈을 사용하여 신뢰할 수 없는 코드를 실행할 수 있는 샌드박스입니다. vm2 버전 3.9.16까지 예외 정화(exception sanitization)에 취약점이 존재하며, 공격자가 handleException() 내에서 정화되지 않은 호스트 예외를 발생시켜 샌드박스를 탈출하고 호스트 컨텍스트에서 임의 코드를 실행할 수 있습니다. 이 취약점은 vm2 버전 3.9.17 릴리스에서 패치되었습니다. 알려진 해결 방법은 없습니다. 사용자는 업그레이드하는 것이 좋습니다.
PoC의 Python 코드는 https://gist.github.com/leesh3288/381b230b04936dd4d74aaf90cc8bb244에 있습니다. 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