FastjsonÔ¶³Ì´úÂëÖ´ÐÐÎó²îͨ¸æ
Ðû²¼Ê±¼ä 2020-05-290x00 Îó²î¸ÅÊö
|
CVE ID |
ÔÝÎÞ |
ʱ ¼ä |
2020-05-29 |
|
Àà ÐÍ |
RCE |
µÈ ¼¶ |
¸ßΣ |
|
Ô¶³ÌʹÓà |
ÊÇ |
Ó°Ïì¹æÄ£ |
Fastjson <= 1.2.68 |
0x01 Îó²îÏêÇé
FastjsonÊǰ¢Àï°Í°ÍµÄ¿ªÔ´JSONÆÊÎö¿â£¬£¬£¬£¬£¬Ëü¿ÉÒÔÆÊÎöJSONÃûÌõÄ×Ö·û´®£¬£¬£¬£¬£¬Ö§³Ö½«Java BeanÐòÁл¯ÎªJSON×Ö·û´®£¬£¬£¬£¬£¬Ò²¿ÉÒÔ´ÓJSON×Ö·û´®·´ÐòÁл¯µ½JavaBean¡£¡£¡£
2020Äê5ÔÂ28ÈÕ£¬£¬£¬£¬£¬GithubÐû²¼ÁËÓйØFastjson <= 1.2.68°æ±¾±£´æÔ¶³Ì´úÂëÖ´ÐÐÎó²îµÄͨ¸æ£¬£¬£¬£¬£¬¸ÃÎó²î¿ÉÈÆ¹ýautoType¿ª¹ØµÄÏÞÖÆ£¬£¬£¬£¬£¬¹¥»÷ÕßÈ«ÐĽṹ·´ÐòÁл¯Ê¹ÓÃÁ´£¬£¬£¬£¬£¬ÊµÏÖÔÚÄ¿µÄ»úеÉϵÄÔ¶³Ì´úÂëÖ´ÐС£¡£¡£´ËÎó²î×Ô¼ºÎÞ·¨ÈƹýFastjsonµÄºÚÃûµ¥ÏÞÖÆ£¬£¬£¬£¬£¬ÐèÒªÅäºÏ²»ÔÚºÚÃûµ¥Öеķ´ÐòÁл¯Ê¹ÓÃÁ´²Å»ªÍê³ÉÎó²îʹÓᣡ£¡£
Fastjson°æ±¾¼ì²âÏÂÁ
lsof | grep fastjson
0x02 ´¦Öóͷ£½¨Òé
×èÖ¹µ½ÏÖÔÚ£¬£¬£¬£¬£¬¹Ù·½»¹Î´Ðû²¼1.2.69°æ±¾£¬£¬£¬£¬£¬½¨Òé¿í´óÓû§ÊµÊ±¹Ø×¢¹Ù·½¸üÐÂͨ¸æ£¬£¬£¬£¬£¬×öºÃ×ʲú×Բ飬£¬£¬£¬£¬ÒÔÃâÔâÊܺڿ͹¥»÷¡£¡£¡£
ÔÝʱ²½·¥£º
ÊÜÓ°ÏìÓû§¿Éͨ¹ý½ûÓÃautoTypeÀ´¹æ±ÜΣº¦£¬£¬£¬£¬£¬ÁíÍ⽨Ò齫JDKÉý¼¶µ½×îа汾¡£¡£¡£
ÓÉÓÚautotype¿ª¹ØµÄÏÞÖÆ¿É±»Èƹý£¬£¬£¬£¬£¬ÇëÊÜÓ°ÏìÓû§Éý¼¶fastjsonÖÁ1.2.68°æ±¾£¬£¬£¬£¬£¬Í¨¹ý¿ªÆôsafeModeÉèÖÃÍêÈ«½ûÓÃautoType¡£¡£¡£( ×¢ÖØ£ºsafeMode»áÍêÈ«½ûÓÃautotype£¬£¬£¬£¬£¬ÎÞÊÓ°×Ãûµ¥£¬£¬£¬£¬£¬Çë×¢ÖØÆÀ¹À¶ÔÓªÒµÓ°Ïì)ÈýÖÖÉèÖÃSafeModeµÄ·½·¨ÈçÏÂ:
? ÔÚ´úÂëÖÐÉèÖãº
ParserConfig.getGlobalInstance().setSafeMode(true);
? ¼ÓÉÏJVMÆô¶¯²ÎÊý£ºÈôÊÇÓжà¸ö°üÃûǰ׺£¬£¬£¬£¬£¬¿ÉÓöººÅÀë¸ô¡£¡£¡£
-Dfastjson.parser.safeMode=true
? ͨ¹ýfastjson.propertiesÎļþÉèÖãºÍ¨¹ýÀà·¾¶µÄfastjson.propertiesÎļþÀ´ÉèÖ㬣¬£¬£¬£¬ÉèÖ÷½·¨ÈçÏ£º
fastjson.parser.safeMode=true
0x03 ²Î¿¼Á´½Ó
https://github.com/alibaba/fastjson/releases
https://github.com/alibaba/fastjson/wiki/fastjson_safemode
0x04 ʱ¼äÏß
2020-05-28 GithubÐû²¼Îó²îͨ¸æ
2020-05-29 VSRCÐû²¼Îó²îͨ¸æ


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