IEÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-0674£©·ÖÎö
°ä²¼¹¦·ò 2020-03-092020Äê1ÔÂ17ÈÕ£¬Î¢Èí°ä²¼ÁËÕë¶ÔIEÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-0674£©µÄSecurity Advisory(ADV200001)£¬²¢Ö¸³ö¸Ã0day·ì϶ÒѾ±»Ê¹ÓÃÓÚÕë¶ÔÐÔ¹¥»÷¡£Ä¿Ç°£¬Î¢ÈíÒѾ°ä²¼Óйز¹¶¡½øÐн¨¸´¡£
¸Ã·ì϶ӰÏì×é¼þΪjscript.dll£¬¸Ã¶¯Ì¬Á´½Ó¿âÊÇ΢ÈíInternet Explorerä¯ÀÀÆ÷µÄJavascriptÒýÇæÖ®Ò»£¬ÆäÖÐIE8¼°ÒÔÏÂʹÓÃjscript.dll£¬IE9¼°ÒÔÉÏĬÈÏʹÓÃjscript9.dll£¬µ«ÍøÒ³Äܹ»Í¨¹ý<script>±êǩָ¶¨ÔÚIE8¼æÈÝÐÔģʽϼÓÔØjscript.dll£¬Òò¶øIE9¡¢IE10¡¢IE11¶¼Êܵ½´Ë·ì϶ӰÏì¡£´Ó²Ù×÷ϵͳÁìÓòÀ´¿´£¬±¾·ì϶ӰÏìÁìÓòºá¿çWindows 7ÖÁWindows 10ÖÐËùÓеÄÓ×ÎÒ²Ù×÷ϵͳºÍ·þÎñÆ÷²Ù×÷ϵͳ¡£
¸Ã·ì϶ÊÇÒ»¸öUse-After-Free·ì϶£¬¹¥»÷Ñù±¾Ê¹ÓÃUAF´ï³ÉÀàÐÍ»ìºÏ£¬½ø¶ø»ñȡȫ¾ÖÄÚ´æ¶ÁдÄÜÁ¦²¢ÈƹýASLRµÈ·ì϶ÀûÓûº½â¼¼Êõ£¬²¢´ÓÖ¸¶¨ipµØÖ·ÒªÇóÏÂÒ»²½¹¥»÷ÔØºÉ£¬×îÖÕ´ïµ½Ô¶³Ì´úÂëÖ´ÐС£
GA»Æ½ð¼×ADLab°²È«×êÑÐԱƾ¾Ý·´²¡¶¾³§É̲¶»ñµ½µÄÑù±¾¶Ô´Ë·ì϶½øÐÐÁË·ÖÎö£¬·¢ÏÖ·ì϶CVE-2020-0674ÆäʵÓëCVE-2019-1429´Ó·ì϶µÀÀíÉÏÊÇͳһ¸ö·ì϶£¬µ«´¥·¢·ì϶µÄÑù±¾½ØÈ»·ÖÆç£¬Á½´ÎÍÆ³öµÄ²¹¶¡Ò²²»ÆëȫһÑù¡£
Ó¦¶Ô´ëÊ©
ʹÓÃWindows¸üкͲ¹¶¡½¨¸´´Ë·ì϶¡£
½ûÓÃjscript.dll£¬Security Advisory(ADV200001)ÖÐÒѾ¸ø³ö£º
·ì϶ºÍ²¹¶¡·ÖÎö
PART1
ÔÚ¿ªÆôÒ³¶ÑµÄIEä¯ÀÀÆ÷Öе÷ÊÔ£¬±ÀÀ£ÏÖ³¡ÈçÏ£º
ƾ¾ÝÕ»»ØËÝÄܹ»¶ÔÓ¦µ½htmlÑù±¾µÄtypeofŲÓá£ÔÚÑù±¾ÖУ¬¾¹ý¸´ÔÓµÄÒýÓòÙ×÷£¬ÔÚarr3ÖУ¬Ç°Ò»²¿ÃÅÔªËØÓ¦¸ÃΪundefined£¬ºóÒ»²¿ÃÅÔªËØÓ¦ÎªRegExp¶ÔÏ󣬵«Ê¹ÓÃtypeof½Ó¼ûÄ³ÔªËØÊ±±¨´íΪ¡°ÒÑ¿ªÊ͵ÄÒ³¶Ñ¿Õ¼ä¡±£¬Äܹ»¿´³öÕâÊÇÒ»¸öÓÉÀ¬»ø»ØÊÕ»úÔìÒýÆðµÄÎÊÌâ¡£ÔÚÓû§Ä¬ÈÏÉèÖÃÏ£¬¼´Î´¿ªÆôÒ³¶Ñʱ£¬arr3ÖеÄijһ¸öÔªËØi»áµ¼ÖÂarr3[i]) === "number"³ÉÁ¢£¬´Ëʱ¼´Òý·¢ÀàÐÍ»ìºÏ¡£
IE jscriptµÄÀ¬»ø»ØÊÕ(Garbage Collect, GC)»ùÓÚMark-SweepËã·¨£¬¼´´Ó½ç˵Ϊ¡°¸ù¡±µÄÊý¾Ý½á¹¹ÆðÍ·£¬Ñ°ÕÒÆäËùÓÐÒýÓõ½µÄ¶ÔÏóÏóÕ÷ΪÔÚʹÓ㬶øÃ»ÓÐÔÚÏóÕ÷µÄ¶ÔÏó±»µ±×÷²»ÔÙʹÓã¬ÆäÄÚ´æ¿Õ¼ä½«ÔÚÀ¬»ø»ØÊÕ¹ý³ÌÖб»¿ªÊÍ¡£Òò¶ø´Ó±ÀÀ£ÏÖ³¡¿´£¬±¾·ì϶µÄ³ÉÒòÊÇMark-SweepµÄÏóÕ÷¹ý³Ì³öÏÖÁËÎÊÌ⣬Ҳ¾ÍÊǶÔÏóÖ®¼äµÄÒýÓóöÏÖÁËÎÊÌâ¡£
²¹¶¡·ÖÎöµÄ½áÂÛÖ§³ÖÁËÉÏÊö²Â²â¡£×°Öò¹¶¡ºó£¬¶ÔоÉjscript.dll½øÐÐbin diff£¬Äܹ»¿´µ½À¬»ø»ØÊÕËã·¨ÔÚ¶à¸ö¶ÔÏóµÄÏóÕ÷¹ý³Ì(Scavenge)×ųÁ´¦ÖÃÁËÒ»¸öֵΪ0x400CµÄÌØÊâÇé¿ö£¬ÒÔNameList¶ÔÏóΪÀý£º
ƾ¾ÝÄæÏò·ÖÎöºÍÎĵµ£¬Õâ¸öö¾ÙÀàÐ͵ÄÖµÊÇVARIANT->VarTypeÓò¡£ÆäÖУ¬0x400C´ú±í¸Ã¶ÔÏóÊÇÒ»¸öÖ¸ÕëÀàÐ͵ĶÔÏó£¬Ö¸ÏòÁíÒ»¸öVARIANT£¬ÆäÖ¸ÕëÓòλÓÚoffset 8µÄµØÎ»£¬Ò²¼´*((_DOWORD *)i + 2)¡£Äܹ»¿´µ½£¬´Ë´¦µÄ½¨²¹ÊÇÈ¡³öÖ¸ÕëÖµ£¬´«µÝ¸øVAR::Scavengeº¯Êý¡£¶øVAR::ScavengeÔٴζÔ0x400CµÄö¾ÙÐͱäÁ¿Ôö³¤ÁËÌØÊâ´¦Öãº
VAR::Scavengeº¯Êý¶Ô´«Èë¶ÔÏóµü´úµØ½âÒýÓã¬Ö±µ½»ñµÃ·ÇÖ¸ÕëµÄ¶ÔÏó£¬Ò²¼´Èô¸É²ãÖ¸ÕëµÄ×îÖÕÖ¸Ïò£¬½«Æä´«ÈëGcContext::ScavengeVar¡£GcContext::ScavengeVarº¯ÊýÂß¼½ÏΪµ¥Ò»£¬¸Ãº¯Êýͨ¹ýÓë0xF7FFµÄÓë²Ù×÷¶Ô´«Èë¶ÔÏó½øÐÐÏóÕ÷£¬¸ÃÓë²Ù×÷Êǽ«µÚ12λÇåÁã¡£
¾¹ý²âÊÔ£¬CVE-2019-1429ÓëCVE-2020-0674µÄÑù±¾ÔÚ¸÷¸ö¡°Î´½¨¸´¡±ºÍ¡°Òѽ¨¸´¡±°æ±¾Öвû·¢ÆëȫһÖ¡£ÆäUAFµÄ¶ÔÏóµÄÏóÕ÷¹ý³ÌµÄÈ·¾ÓÉNameList::ScavengeCore£¬ÔÚCVE-2019-1429ÖÐÊÇArrayË÷ÒýµÄObject¶ÔÏó£¬ÔÚCVE-2020-0674ÖÐÊÇArrayË÷ÒýµÄRegExp¶ÔÏó£¬NameList::ScavengeCore¾ö¶¨ÁËÆäÊÇ·ñ±»ÏóÕ÷¡£
Òò¶ø¶ÔÓÚ±¾·ì϶µÄ³ÉÒòµÃ³ö½áÂÛ£ºÔÚMark-SweepÏóÕ÷Ëã·¨ÖУ¬Óöµ½Ö¸ÕëÀàÐ͵ĶÔÏóʱӦ¸Ã½âÒýÓò¢ÏóÕ÷¶ÔÓ¦¶ÔÏó£»±¾ÀýÖУ¬²»×ã½âÒýÓõĹý³Ìµ¼ÖÂÁË·ì϶µÄ²úÉú¡£
PART2
½øÒ»²½·ÖÎöÄܹ»·¢ÏÖ£¬Õë¶ÔCVE-2019-1429ºÍCVE-2020-0674΢ÈíÏȺóÍÆ³öÁËÁ½¸öpatch£¬ÒÔWindows 10 Version 1903 for 32-bit SystemsΪÀý£¬±ðÀëÊÇKB4524570ºÍKB4532693£¬µ«×îÖÕ¶¼Éý¼¶µ½ºóÕߣº
KB4524570ºÍKB4532693¶¼Ô̺¬Á˶ÔÉÏÊö·ì϶Ö÷ÌâµÀÀíµÄ½¨¸´£¬ÆäÖÐǰÕß¶Ôjscript.dllÓнϴóŤת£¬¶øºóÕߍתÔò¼ò½àºÃ¶à¡£KB4532693»¹Ô̺¬ÁíÒ»¸ö¸Ä½ø£¬Ê¹Óá°ÈßÓàÈÝÔÖ¡±µÄ˼·ÌṩÁËÁíÒ»´¦¼ÓÇ¿£»´Ë´¦¼ÓǿλÓÚJavascriptÒýÇæÖÐcallºÍdispatchµÄ»ù´¡ÉèÊ©ÖУ¬¶ø²»ÊǶԸ÷Àà¶ÔÏóÖð¸ö²¹¾È¡£
KB4532693¶Ôjscript.dllÖеÄScrFncObj::Callº¯Êý½øÐÐÁ˳ÁÐÂ×éÖ¯£¬¶ÔÓÚCallWithFrameOnStackºÍCallWithFrameOnHeap(×Ô½ç˵Ãû³Æ)ÕâÁ½ÖÖÇé¿ö£¬ÓÃScrFncObj::PerformCallͳһ¡£ÔÚScrFncObj::PerformCallÖУ¬°ÑŲÓÃʹÓõĺ¯Êý²ÎÊý²ÎÓëÀ¬»ø»ØÊյġ°¸ù¡±ÖУº
¾¹ýÑéÖ¤£¬ÔÚPerformCallµÄ¼Ó¹ÌÏ£¬¼´±ãNameListµÈ¶ÔÏó³öÏÖÎÊÌ⣬ÔÚº¯ÊýŲÓÃÖÐ×÷Ϊ²ÎÊýµÄ¶ÔÏóÒÀÈ»±»ÕýÈ·ÏóÕ÷£¬²»»á´¥·¢·ì϶¡£Òò¶ø¹ÌÈ»Á½¸ö²¹¶¡¶¼Äܹ»ÆëÈ«ÕмÜÁ½¸öCVEµÄexploit£¬ÈÔÄܹ»ÒÔΪKB4532693ÊDZÈKB4524570ÉÔ΢¸ßÃîÒ»µãµÄ½¨²¹¡£
PART3
³ý´ËÖ®±í£¬Á½¸ö²¹¶¡¹ÌÈ»¿ÉÄÜÔÚĬÈÏÅäÖÃÏÂÕмÜÉÏÊö·ì϶£¬¶ÔÓ¦jscript.dllÒÀÈ»ÓÐÒ»¸ö³ÆÎªLegacyGCµÄ¼æÈÝÏÒѽ¨²¹´úÂëÖÐÒÀȻƾ¾ÝGcContext::IsLegacyGCEnabled()µÄº¯Êý²éÎÊÁ˾ÖÀ´Åжϲé³ÊÇ·ñȾָ¡£Æ¾¾ÝÄæÏò·ÖÎö¿ÉÖª£¬¸Ãº¯Êý²éÎÊÒ»¸ö×¢²á±íÏ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\ee1ca8aa-4402-4da1-bbe2-69a09c483a56
ÔÚ´ËÏîΪ1ʱÒâΪ¡°¼æÈÝʹÓÃÀϵÄGC»úÔ족£¬½«Ê¹KB4532693ÖеļÓǿʧЧ£¬¶ÔÓÚKB4524570Ôò»áÆëȫʧЧ¡£Òò¶ø¸Ã×¢²á±íÏîµÄÄÚÈÝÒ²Éæ¼°IEä¯ÀÀÆ÷µÄ°²È«ÐÔ£¬±ØÒªÓèÒÔ°ÑÎÈ¡£
²Î¿¼Á´½Ó£º
1.https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV200001
2.https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-1429
3.https://www.virustotal.com


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