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µØÖ·ÒªÇóÏÂÒ»²½¹¥»÷ÔØºÉ£¬£¬£¬£¬£¬£¬£¬×îÖÕ´ïµ½Ô¶³Ì´úÂëÖ´ÐС£¡£¡£¡£¡£¡£¡£
8827Ì«Ñô¼¯ÍÅ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ºÅ