CVE-2020-17521 | Apache Groovy缝隙公告
颁布功夫 2020-12-070x00 缝隙概述
CVE ID | CVE-2020-17521 | 时 间 | 2020-12-07 |
类 型 | 权限升级/信息泄露 | 等 级 | 高危 |
远程利用 | 否 | 影响领域 |
0x01 缝隙详情

Groovy 是 Apache 旗下的一门基于 JVM 平台的动态编程说话,在说话的设计上其吸纳了 Python、Ruby 和 Smalltalk 说话的特点,语法简练,开发效能高。
2020年12月06日,Apache颁布安全布告,Groovy中存在一个安全缝隙(CVE-2020-17521)。Groovy在使用JDK中的一种步骤,此刻将该步骤象征为不合用于安全敏感的高低文。另表,Groovy未查抄创建一时目录时的有关flag,这将存在安全问题。
此缝隙可能会影响类Unix系统以及旧版的Mac OSX和Windows系统。Groovy能够在这些系统中创建一时目录天生Java Stub以供内部挪用,或者通过两种扩大步骤(详见参考链接)来创建一时目录,该目录会在系统上的所有效户之间共享。
分析此缝隙的影响时,前提前提如下:
Groovy代码是否在受影响的操作系统上运行?
其他用户是否能够接见运行Groovy代码的机械?
Groovy代码是否使用createTempDir两种扩大步骤之一创建一时目录?
若是Groovy使用createTempDir两种扩大步骤之一来创建一时目录,Groovy代码在受影响的操作系统上运行,可执行代码被写入或存储在一时目录中,并且其他用户能够接见运行Groovy代码的机械,则存在本地权限提升的风险;若是Groovy使用createTempDir两种扩大步骤之一来创建一时目录,Groovy代码在受影响的操作系统上运行,Groovy代码将敏感信息(例如API密钥或密码)写入一时目录,并且其他用户能够接见运行Groovy代码的机械,则将存在信息泄露或批改的风险。
对于固定版本,Groovy 2.5及更高版本此刻使用一种更新JDK的步骤来建复此缝隙,该步骤将创建一个只有Groovy代码的用户能力读取的目录。Groovy 2.4版本也合用于这种步骤,除非其JDK版本幼于JDK7。若是JDK版本在JDK7之前,能够使用fallback implementation来查抄是否成功创建了一时目录,但在此种情况下可批改可执行文件或信息,因而仍可能导致敏感信息泄露。Groovy 2.4/JDK 6用户建议使用java.io.tmpdir。
影响领域:
Codehaus 2.0-2.4.4
Apache Groovy 2.4.4-2.4.20、2.5.0-2.5.13、3.0.0-3.0.6、4.0.0-alpha-1。
0x02 措置建议
目前Apache已经建复了此缝隙,建议参考以下版本实时更新。
Apache Groovy 2.4.21、2.5.14、3.0.7、4.0.0-alpha-2。
缓解措施:
将java.io.tmpdir的系统环境变量设置为执行用户独有。此步骤合用于所有操作系统和所有Groovy版本。
若是不想升级Groovy,则能够思考使用JDK的Files#createTempDirectory步骤来建复。
0x03 参考链接
http://mail-archives.apache.org/mod_mbox/www-announce/202012.mbox/%3CCADRx3PPJFs4x2Oyy-auG+=e2nB+bDx_f_tKR7xn2qXW7518Pgg@mail.gmail.com%3E
https://docs.groovy-lang.org/latest/html/groovy-jdk/java/io/File.html#createTempDir
https://docs.groovy-lang.org/latest/html/groovy-jdk/java/io/File.html#createTempDir(java.lang.String,%20java.lang.String)
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-17521
0x04 功夫线
2020-12-06 Apache颁布安全布告
2020-12-07 VSRC颁布安全公告
0x05 附录
CVSS评分尺度官网:http://www.first.org/cvss/



京公网安备11010802024551号