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°æ±¾¡£¡£¡£¡£¡£

ÈôÊDz»ÏëÉý¼¶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