IEÔ¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-0674£©·ÖÎö

°ä²¼¹¦·ò 2020-03-09

2020Äê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)ÖÐÒѾ­¸ø³ö£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


·ì϶ºÍ²¹¶¡·ÖÎö


PART1


ÔÚ¿ªÆôÒ³¶ÑµÄIEä¯ÀÀÆ÷Öе÷ÊÔ £¬£¬£¬£¬£¬£¬£¬±ÀÀ£ÏÖ³¡ÈçÏ£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ƾ¾ÝÕ»»ØËÝÄܹ»¶ÔÓ¦µ½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¶ÔÏóΪÀý£º


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


ƾ¾ÝÄæÏò·ÖÎöºÍÎĵµ £¬£¬£¬£¬£¬£¬£¬Õâ¸öö¾ÙÀàÐ͵ÄÖµÊÇVARIANT->VarTypeÓò¡£¡£ ¡£¡£¡£¡£¡£ÆäÖÐ £¬£¬£¬£¬£¬£¬£¬0x400C´ú±í¸Ã¶ÔÏóÊÇÒ»¸öÖ¸ÕëÀàÐ͵ĶÔÏó £¬£¬£¬£¬£¬£¬£¬Ö¸ÏòÁíÒ»¸öVARIANT £¬£¬£¬£¬£¬£¬£¬ÆäÖ¸ÕëÓòλÓÚoffset 8µÄµØÎ» £¬£¬£¬£¬£¬£¬£¬Ò²¼´*((_DOWORD *)i + 2)¡£¡£ ¡£¡£¡£¡£¡£¿£¿£¿£¿£¿£¿£Äܹ»¿´µ½ £¬£¬£¬£¬£¬£¬£¬´Ë´¦µÄ½¨²¹ÊÇÈ¡³öÖ¸ÕëÖµ £¬£¬£¬£¬£¬£¬£¬´«µÝ¸øVAR::Scavengeº¯Êý¡£¡£ ¡£¡£¡£¡£¡£¶øVAR::ScavengeÔٴζÔ0x400CµÄö¾ÙÐͱäÁ¿Ôö³¤ÁËÌØÊâ´¦Öãº


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


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 £¬£¬£¬£¬£¬£¬£¬µ«×îÖÕ¶¼Éý¼¶µ½ºóÕߣº


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


KB4524570ºÍKB4532693¶¼Ô̺¬Á˶ÔÉÏÊö·ì϶Ö÷ÌâµÀÀíµÄ½¨¸´ £¬£¬£¬£¬£¬£¬£¬ÆäÖÐǰÕß¶Ôjscript.dllÓнϴóŤת £¬£¬£¬£¬£¬£¬£¬¶øºóÕߍתÔò¼ò½àºÃ¶à¡£¡£ ¡£¡£¡£¡£¡£KB4532693»¹Ô̺¬ÁíÒ»¸ö¸Ä½ø £¬£¬£¬£¬£¬£¬£¬Ê¹Óá°ÈßÓàÈÝÔÖ¡±µÄ˼·ÌṩÁËÁíÒ»´¦¼ÓÇ¿£»£» £»£»£»´Ë´¦¼ÓǿλÓÚJavascriptÒýÇæÖÐcallºÍdispatchµÄ»ù´¡ÉèÊ©ÖÐ £¬£¬£¬£¬£¬£¬£¬¶ø²»ÊǶԸ÷Àà¶ÔÏóÖð¸ö²¹¾È¡£¡£ ¡£¡£¡£¡£¡£


KB4532693¶Ôjscript.dllÖеÄScrFncObj::Callº¯Êý½øÐÐÁ˳ÁÐÂ×éÖ¯ £¬£¬£¬£¬£¬£¬£¬¶ÔÓÚCallWithFrameOnStackºÍCallWithFrameOnHeap(×Ô½ç˵Ãû³Æ)ÕâÁ½ÖÖÇé¿ö £¬£¬£¬£¬£¬£¬£¬ÓÃScrFncObj::PerformCallͳһ¡£¡£ ¡£¡£¡£¡£¡£ÔÚScrFncObj::PerformCallÖÐ £¬£¬£¬£¬£¬£¬£¬°ÑŲÓÃʹÓõĺ¯Êý²ÎÊý²ÎÓëÀ¬»ø»ØÊյġ°¸ù¡±ÖУº


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


¾­¹ýÑéÖ¤ £¬£¬£¬£¬£¬£¬£¬ÔÚ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