
ينشأ هذا الثغرة من عدم اكتمال العزل (sandboxing) في js2py، حيث يمكن لـ JavaScript المصممة بعناية أن تعبر نموذج الكائنات الداخلي لـ Python وتصل إلى الفئات الخطرة مثل subprocess.Popen، مما يؤدي إلى تنفيذ أوامر تعسفية.
تنشأ هذه الثغرة من عدم اكتمال العزل (sandboxing) في مكتبة js2py، حيث يمكن لجافاسكريبت مصمَّم أن يتجول في نموذج الكائنات الداخلي للغة بايثون ويصل إلى فئات خطيرة مثل subprocess.Popen، مما يؤدي إلى تنفيذ أوامر تعسفية.
يحتوي هذا المستودع على حمولة إثبات مفهوم (PoC) توضح الهروب من صندوق الرمل (sandbox escape) عبر js2py.disable_pyimport()، وهي ثغرة في الإصدارات حتى 0.74 من js2py.
عندما يقوم تطبيق ما بتقييم أو تحليل JSON/جافاسكريبت مقدَّم من المستخدم بشكل غير آمن، تسمح هذه الثغرة للمهاجم بالخروج من صندوق الرمل الخاص بجافاسكريبت، والوصول إلى دواخل بايثون، وتحديد موقع subprocess.Popen، وتنفيذ أوامر تعسفية.
js2pyjs2py.disable_pyimport()، مما يتيح تجاوز قيود الاستيراد المقصودة عبر الوصول إلى الكائنات العامة (global object access).__class__ و __base__ و __subclasses__() ليعثر على subprocess.Popen.disable_pyimport() sandbox escape https://github.com/advisories/GHSA-h95x-26f3-88hr