关于Judge0沙箱逃逸代码执行漏洞(CVE-2024-28185)的安全预警

来源:网络信息中心发布时间:2024-05-27浏览次数:38

一、基本情况

Judge0是一个强大的、可扩展的开源在线代码执行系统,可以使用它来构建需要在线代码执行功能的各种应用程序。

二、漏洞描述

Judge0中修复了多个沙箱逃逸漏洞,威胁者可利用这些漏洞实现沙箱逃逸、代码执行并可能获得主机上的root权限,详情如下:

CVE-2024-28185:Judge0符号链接沙箱逃逸漏洞

由于该应用程序中未考虑放置在沙箱目录内的符号链接,威胁者可以利用符号链接写入任意文件并在沙箱外实现代码执行,成功利用该漏洞可能导致在运行提交作业的 Docker 容器上获得非沙箱代码执行权限,并可能在Docker容器之外提升权限。该漏洞的CVSS评分为10.0。

CVE-2024-28189:Judge0符号链接chown沙箱逃逸漏洞

由于该应用程序对沙箱中的不受信任的文件使用Unix/Linux chown命令,威胁者可以通过创建指向沙箱外部文件的符号链接来利用该功能,从而导致在沙箱外的任意文件上运行chown。威胁者可利用该漏洞绕过CVE-2024-28185的补丁并实现沙箱逃逸和代码执行,该漏洞的CVSS评分为10.0。

CVE-2024-29021:Judge0 SSRF沙箱逃逸漏洞

Judge0中存在不安全的默认配置,导致服务容易受到通过服务器端请求伪造(SSRF)进行沙箱逃逸,对Judge0 API 有足够访问权限的威胁者能够以目标计算机上的 root 身份实现非沙箱代码执行。该漏洞的CVSS评分为9.1,利用该漏洞需在 judge0.conf 中将 ALLOW_ENABLE_NETWORK 设为 true 或空,且POSTGRES_PASSWORD 必须为默认密码或可暴力破解密码。

三、影响范围

Judge0 <= 1.13.0

四、修复建议

目前该漏洞已经修复,受影响用户可升级到以下版本:

Judge0 >= 1.13.1