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