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°æ±¾¡£¡£¡£¡£¡£
ÈôÊ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/



¾©¹«Íø°²±¸11010802024551ºÅ