
استغلال بايثون لثغرة الهروب من الصندوق الرملي vm2 CVE-2023-30547. يُنشئ حمولة JSON مشفرة بـ base64 لفتح شل عكسية من بيئات الصندوق الرملي لـ Node.js المعرضة للخطر.
vm2 هو صندوق رمل (sandbox) يمكنه تشغيل كود غير موثوق به باستخدام وحدات Node.js المضمنة المُدرجة في القائمة البيضاء. توجد ثغرة أمنية في تعقيم الاستثناءات (exception sanitization) في vm2 للإصدارات حتى 3.9.16، مما يسمح للمهاجمين بإثارة استثناء مضيف غير مُعقّم داخل handleException() والذي يمكن استخدامه للهروب من الصندوق الرمل وتشغيل كود عشوائي في سياق المضيف. تم تصحيح هذه الثغرة في إصدار 3.9.17 من vm2. لا توجد حلول بديلة معروفة لهذه الثغرة. يُنصح المستخدمون بالترقية.
كود بايثون لإثبات المفهوم (PoC) في 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