CVE-2020-17521 | Apache Groovy误差通告

宣布时间 2020-12-07

0x00 误差概述

CVE   ID

CVE-2020-17521

时    间

2020-12-07

类    型

权限升级/信息泄露

等    级

高危

远程使用

否

影响规模


 

0x01 误差详情

 

image.png

 

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/



image.png