一、基本情况
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




