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号