js2py是一个流行的 Python 包,可以在 Python 解释器中执行 JavaScript 代码。各种网络爬虫都会使用它来解析网站上的 JAVScript 代码。
内部一个全局变量的实现存在漏洞js2py,使得攻击者可以获取js2py环境中一个python对象的引用,从而逃离js环境并在主机上执行任意命令。
通常情况下,用户会调用此方法js2py.disable_pyimport()来阻止 JavaScript 代码逃离js2py环境。但利用此漏洞,攻击者可以绕过此限制并在主机上执行任何命令。
威胁行为者可以托管一个包含恶意 js 文件的网站,或者通过 HTTP API 发送恶意脚本供受害者解析。通过这样做,威胁行为者可以通过在目标上执行任何 shell 命令来在主机上执行远程代码执行。
漏洞详细信息
-
受影响组件的版本号:
-
在 Python 3 下运行的最新 js2py (<=0.74)
-
受影响的产品:
-
pyload/pyload
-
VeNoMouS/cloudscraper(使用 js2py 作为可选的“js 解释器”)
-
dipu-bd/lightnovel-crawler
-
重现步骤:
-
在3.12下安装python3,目前js2py不支持python3.12。
-
运行pip install js2py安装js2py并执行poc.py,它将尝试head -n 1 /etc/passwd; calc; gnome-calculator; kcalc;在主机上执行。
-
如果存在漏洞,脚本应该打印Success! the vulnerability exists...或弹出计算器。
https://github.com/Marven11/CVE-2024-28397-js2py-Sandbox-Escape
原文始发于微信公众号(Ots安全):CVE-2024-28397:js2py(JS 解释器)沙盒逃逸,绕过限制执行命令
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论