
CVE-2024-28397: js2py 沙箱逃逸,绕过 pyimport 限制。
js2py是一个知名的python包,它可以在python解释器中执行JS代码。其经常用在各类爬虫中,用于解析网页的JS代码。
js2py的某个全局变量存在一个漏洞,攻击者可以使用这个漏洞在js代码中获得一个python对象的引用,使得攻击者可以逃逸js环境,在主机上执行任意命令。
用户一般会调用js2py.disable_pyimport()阻止JS代码使用pyimport调用python模块,从而防止代码沙盒逃逸。但是使用这个漏洞,攻击者可以绕过这个限制,在主机上执行任意代码。
攻击者可以在一个钓鱼网页上包含一个恶意的js代码文件,让爬虫爬取并解析;也可以通过HTTP请求将恶意代码发送给受害者解析。攻击者可以据此在受害者机器上执行任意python代码,从而执行任意shell指令,实现RCE.
js2py仍不支持python3.12pip install js2py安装js2py并执行poc.py,其会在主机上执行head -n 1 /etc/passwd; calc; gnome-calculator; kcalc;Success! the vulnerability exists...或者弹出计算器官方修复暂时不存在,可以使用fix.py中的代码动态patchjs2py,也可以使用patch.txt手动修复原代码