¡¾Ô­´´·ì϶¡¿Î¢ÈíIE/Edge¾ç±¾ÒýÇæ·ì϶CVE-2020-0768·ÖÎö

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

΢ÈíÔÚ½üÈÕ°ä²¼µÄ²¹¶¡²¼¸æÖУ¬£¬£¬£¬£¬£¬£¬£¬½¨¸´ÁËÒ»¸öÓÉ8827Ì«Ñô¼¯ÍÅADLab°²È«×êÑÐÔ±Ìá½»µÄ·ì϶£¬£¬£¬£¬£¬£¬£¬£¬·ì϶±àºÅΪCVE-2020-0768¡£ ¡£ ¡£¡£¡£¡£¡£¡£·ì϶λÓÚChakraCoreÒýÇæ´úÂë¿âÖУ¬£¬£¬£¬£¬£¬£¬£¬¿ÉͬʱӰÏìInternet Explorer 11ºÍMicrosoft Edge (»ùÓÚEdgeHTML)ä¯ÀÀÆ÷¡£ ¡£ ¡£¡£¡£¡£¡£¡£¸Ã·ì϶ÊÇÒ»¸öÄÚ´æ·ÛËéÐÍ·ì϶£¬£¬£¬£¬£¬£¬£¬£¬ÓÐÔ¶³Ì´úÂëÖ´ÐеķçÏÕ£¬£¬£¬£¬£¬£¬£¬£¬Òò¶øÎ¢Èí½«ÆäÆÀ¼¶Îª¡°ÑϳÁ¡±£¬£¬£¬£¬£¬£¬£¬£¬²¢³ÆÐ»ADLab¡£ ¡£ ¡£¡£¡£¡£¡£¡£


Ó¦¶Ô´ëÊ©


ʹÓÃWindows×Ô¶¯¸üлòÊÖ¶¯ÏÂÔØ²¹¶¡°ü½¨¸´·ì϶¡£ ¡£ ¡£¡£¡£¡£¡£¡£


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


PART1


±¾·ì϶ÊÇChakraCoreÒýÇæÔÚJIT±àÒë¹ý³ÌÖУ¬£¬£¬£¬£¬£¬£¬£¬µ¥Ò»Ö¸ÁîµÄÊý¾ÝÁ÷·ÖÎöÃýÎ󣬣¬£¬£¬£¬£¬£¬£¬µ¼ÖµıäÁ¿»îÔ¾ÐÔ·ÖÎöºÍ¼Ä·ÅÆ÷·ÖÅä·¸´í¡£ ¡£ ¡£¡£¡£¡£¡£¡£Ê×ÏÈ£¬£¬£¬£¬£¬£¬£¬£¬´Ó·ì϶Ñù±¾µÄ½ÚÔìÁ÷ͼÆðÍ·¡£ ¡£ ¡£¡£¡£¡£¡£¡£


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


ÆäÖУ¬£¬£¬£¬£¬£¬£¬£¬ÔÚBlock 4ÓÐÈçϵÄ×Ö½ÚÂ룺


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


·ûºÅs10´ú±í[1337]£¬£¬£¬£¬£¬£¬£¬£¬s6´ú±íconst½¨ÊεÄarr¡£ ¡£ ¡£¡£¡£¡£¡£¡£ÒÀÕÕ±àÒëµÀÀíµÄÊõÓ£¬£¬£¬£¬£¬£¬£¬±äÁ¿»ñÈ¡½ç˵ֵ³ÆÎªdef£¬£¬£¬£¬£¬£¬£¬£¬±äÁ¿Öµ±»Ê¹ÓóÆÎªuse£¬£¬£¬£¬£¬£¬£¬£¬ÔÚInitConstÖ¸ÁîÖÐs6±»def£¬£¬£¬£¬£¬£¬£¬£¬s10±»use£¬£¬£¬£¬£¬£¬£¬£¬ËæºóÔÚStElemCÕâÌõÖ¸ÁîÏ£¬£¬£¬£¬£¬£¬£¬£¬s6±»use¡£ ¡£ ¡£¡£¡£¡£¡£¡£¿£¿£¿£¿£Äܹ»¿´µ½s6Óës10¹ØÏµÇ×êÇ£¬£¬£¬£¬£¬£¬£¬£¬s6Äܹ»¿´×÷s10ÒÀÕÕÁíÒ»ÖÖ²½Öè¶Ôͳһ±äÁ¿µÄÒýÓ㬣¬£¬£¬£¬£¬£¬£¬ChakraCore³ÆÎªcopy-prop·ûºÅ¶Ôԭʼ·ûºÅµÄÒýÓᣠ¡£ ¡£¡£¡£¡£¡£¡£µ«µ÷ÊÔÏÔʾ£¬£¬£¬£¬£¬£¬£¬£¬ÕâÀï²úÉúÁËÃýÎó¡£ ¡£ ¡£¡£¡£¡£¡£¡£


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


Èç´ËÒ»À´ÐγÉÁËԭʼ·ûºÅΪs10£¬£¬£¬£¬£¬£¬£¬£¬copy-prop·ûºÅΪs6£¬£¬£¬£¬£¬£¬£¬£¬¼´s6->s10µÄ¼üÖµ¶Ô¡£ ¡£ ¡£¡£¡£¡£¡£¡£ÆäÕ»»ØËÝλÓÚ£º


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


ÃýÎó¼üÖµ¶ÔÊÇÆ¾¾ÝÊý¾ÝÁ÷·ÖÎöµÄÃýÎóÁ˾ֵóöµÄ¡£ ¡£ ¡£¡£¡£¡£¡£¡£Ëæºó£¬£¬£¬£¬£¬£¬£¬£¬Õâ¸ö¼üÖµ¶Ô±»²ÎÓëÁËBlock 4ÖÐblockOptData->capturedValues->copyPropSyms£¬£¬£¬£¬£¬£¬£¬£¬ÆäÕ»»ØËÝλÓÚ£º


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


Ëæºó£¬£¬£¬£¬£¬£¬£¬£¬ÔÚJIT ForwardPassÕâÑùÔçÄêÏòºóµÄÓÅ»¯¹ý³ÌÖУ¬£¬£¬£¬£¬£¬£¬£¬Block 4µÄblockOptData->capturedValues±»¹é²¢¸øBlock 5£¬£¬£¬£¬£¬£¬£¬£¬ÆäÖÐÔ̺¬s6->s10ÕâÒ»¼üÖµ¶Ô£¬£¬£¬£¬£¬£¬£¬£¬ÆäÕ»»ØËÝλÓÚ£º


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


ÔÙÖ®ºó£¬£¬£¬£¬£¬£¬£¬£¬ÔÚJIT BackwardPassÕâÑù´ÓºóÏòǰµÄÓÅ»¯¹ý³ÌÖУ¬£¬£¬£¬£¬£¬£¬£¬Block 5µÄupwardExposedUsesͨ¹ý½Ó¼ûblockOptData->capturedValues->copyPropSyms£¬£¬£¬£¬£¬£¬£¬£¬°Ñs6->s10ÕâÒ»¼üÖµ¶Ô²ÎÓë¡£ ¡£ ¡£¡£¡£¡£¡£¡£ÆäÕ»»ØËÝλÓÚ£º


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


upwardExposedUsesÔÚ±àÒëµÀÀíÖб»³ÆÎª¡°ÏòÉ϶³öµÄʹÓá±£¬£¬£¬£¬£¬£¬£¬£¬ËüÊDZäÁ¿»îÔ¾ÐÔ·ÖÎöµÄ¶Ô³Æ¹ý³Ì¡£ ¡£ ¡£¡£¡£¡£¡£¡£ËæºóÔÚ·´Ïò´«²¼µÄ¹ý³ÌÖУ¬£¬£¬£¬£¬£¬£¬£¬º¬ÓÐÉÏÊö¼üÖµ¶ÔµÄupwardExposedUses±»´«µÝ¸øBlock 4¡¢Block 3ºÍBlock 2¡£ ¡£ ¡£¡£¡£¡£¡£¡£¶ø×÷ΪLoop HeaderµÄBlock 2½«ÆäupwardExposedUsesÓÃÓÚ»îÔ¾ÐÔ·ÖÎöºÍºóÐøµÄ¼Ä·ÅÆ÷·ÖÅä¹ý³Ì¡£ ¡£ ¡£¡£¡£¡£¡£¡£


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


ÉÏÊö¹ý³ÌÄܹ»Í¨¹ýÏÂͼÀ´°µÊ¾¡£ ¡£ ¡£¡£¡£¡£¡£¡£¿£¿£¿£¿£Äܹ»¿´µ½£¬£¬£¬£¬£¬£¬£¬£¬ÃýÎóµÄÊý¾Ý¾­¹ýÁËÕýÏò´«²¼ºÍ·´Ïò´«²¼£¬£¬£¬£¬£¬£¬£¬£¬×îÖÕÔÚÑ­»·ÌåµÄÈ«ÊýÁìÓò¶¼±»´«È¾¡£ ¡£ ¡£¡£¡£¡£¡£¡£


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


Ëæºó£¬£¬£¬£¬£¬£¬£¬£¬ÓÉÓÚÉÏÊöÃýÎóÊý¾Ý£¬£¬£¬£¬£¬£¬£¬£¬ÔÚJITµÄ¼Ä·ÅÆ÷·ÖÅä¹ý³ÌΪs10ÍÆËã³öÁËÃýÎóµÄÐÔÃüÖÜÆÚ£¬£¬£¬£¬£¬£¬£¬£¬ÆäÐÔÃüÖÜÆÚºá¿çÑ­»·µÄÆðÍ·µ½ÊµÏÖ¡£ ¡£ ¡£¡£¡£¡£¡£¡£Òò¶øÒõ²îÑô´í£¬£¬£¬£¬£¬£¬£¬£¬JIT²åÈëÁËÒ»¸öMOVÖ¸Á£¬£¬£¬£¬£¬£¬£¬ÐÎÈçMOV labelReg, mem£¬£¬£¬£¬£¬£¬£¬£¬µ«²¢Ã»Óгõʼ»¯Æäinstr->src->m_offset£¬£¬£¬£¬£¬£¬£¬£¬¸ÃֵʼÖÕΪ0¡£ ¡£ ¡£¡£¡£¡£¡£¡£ÔÚ×îºóÌì»îÁ¦ÐµÂëµÄʱ³½£¬£¬£¬£¬£¬£¬£¬£¬ÌìÉúÁËÒ»¸öÖ¸ÏòÕ»Ö¡Ö¸Õë¡¢Æ«ÒÆÎª0µÄ¶ÁÄÚ´æ²Ù×÷£¬£¬£¬£¬£¬£¬£¬£¬°µÊ¾Îª[EBP+0x0]»ò[RBP+0x0]¡£ ¡£ ¡£¡£¡£¡£¡£¡£


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


ÕâÑù£¬£¬£¬£¬£¬£¬£¬£¬Ò»¸ö·ÇÔ¤ÆÚµÄÄÚ´æ½Ó¼û°Ñ·¸·¨µÄÊý¾Ý¶ÁÈëÁËJavaScriptÒýÇæ¸ßµÍÎÄ£¬£¬£¬£¬£¬£¬£¬£¬ËæºóÔÚBailOut»òÆäËûÇé¿ö»áÒýÓõ½£¬£¬£¬£¬£¬£¬£¬£¬ÕâÑùµÄ·¸·¨Êý¾Ý½«»áÔì³ÉÀàÐÍ»ìºÏ¡£ ¡£ ¡£¡£¡£¡£¡£¡£


PART2


Ôì³ÉÉÏÊöÃýÎóÊý¾Ý´«²¼µÄÔ­ÒòÔÚÓÚInitConstÕâÒ»Ö¸ÁîÆäʵûÓÐÔÚChakraCoreµÄJIT´úÂëÖеõ½ÕýÈ·µÄÊý¾ÝÁ÷·ÖÎö£¬£¬£¬£¬£¬£¬£¬£¬Òò¶øÔÚ΢ÈíµÄ½¨¸´ÖУ¬£¬£¬£¬£¬£¬£¬£¬ÔÚJIT¸ÕÆðͷȾָµÄʱ³½£¬£¬£¬£¬£¬£¬£¬£¬InitConstÖ¸Áî¾Í±»´úÌæ³ÉLd_AÖ¸Áî¡£ ¡£ ¡£¡£¡£¡£¡£¡£


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


ChakraCoreÆëȫʵÏÖÁ˶ÔLd_AÖ¸ÁîµÄÊý¾ÝÁ÷·ÖÎö¡£ ¡£ ¡£¡£¡£¡£¡£¡£´Ëʱ£¬£¬£¬£¬£¬£¬£¬£¬ÔÚ·ÖÎöForward PassÖУ¬£¬£¬£¬£¬£¬£¬£¬·¢ÏÖBlock 4ÖеļüÖµ¶Ô²»ÔÙÊÇs6->s10£¬£¬£¬£¬£¬£¬£¬£¬¶øÊÇs10->s6£¬£¬£¬£¬£¬£¬£¬£¬Ò²¾ÍÊÇ˵s10ÊÇԭʼ·ûºÅ£¬£¬£¬£¬£¬£¬£¬£¬s6ÊÇÒýÓÃs10µÄcopy-prop·ûºÅ¡£ ¡£ ¡£¡£¡£¡£¡£¡£Èç´ËÒ»À´£¬£¬£¬£¬£¬£¬£¬£¬ÌìÈ»²»»áÔì³ÉÃýÎóÊý¾ÝµÄ´«²¼¡£ ¡£ ¡£¡£¡£¡£¡£¡£Î¢ÈíÔÚIE11ä¯ÀÀÆ÷ÖÐʹÓÃÁËÒ»ÑùµÄ´úÂëÀ´½¨²¹Õâ¸ö·ì϶¡£ ¡£ ¡£¡£¡£¡£¡£¡£


ÊÂʵÉÏ£¬£¬£¬£¬£¬£¬£¬£¬ÔÚECMAScript 6³ß¶ÈÖУ¬£¬£¬£¬£¬£¬£¬£¬const½¨ÊηûÓÃÀ´°µÊ¾Ò»¸ö±äÁ¿ÔÚ½ç˵֮ºó²»³ÉÔÙ±»¸³Öµ£¬£¬£¬£¬£¬£¬£¬£¬ÊÇÓï·¨µµ´ÎµÄÔ¼Êø£»£»£» £»£»¶øJavaScriptÒýÇæÖеÄJIT¹ý³ÌʼÖÕ²úÉúÔÚÚ¹ÊÍÖ´ÐÐÖ®ºó£¬£¬£¬£¬£¬£¬£¬£¬ÈôÊÇconst½¨ÊηûµÄÔ¼ÊøÔÚÚ¹ÊÍÖ´Ðн׶α»Î¥·´£¬£¬£¬£¬£¬£¬£¬£¬½«»áÁ¢¼´Í˳ö£¬£¬£¬£¬£¬£¬£¬£¬²»»áÓÅ»¯Ö´ÐÐJIT¹ý³Ì¡£ ¡£ ¡£¡£¡£¡£¡£¡£Òò¶ø£¬£¬£¬£¬£¬£¬£¬£¬JIT¹ý³ÌÖ»±ØÒªË¼¿¼Êý¾ÝÁ÷ÎÊÌ⣬£¬£¬£¬£¬£¬£¬£¬¶ø²»ÓÃ˼¿¼const½¨ÊηûµÄÔ¼Êø¡£ ¡£ ¡£¡£¡£¡£¡£¡£ÓÉÓÚChakraCoreÔÚJITµÄÓÅ»¯½×¶ÎÓëÚ¹ÊÍÖ´Ðн׶ÎʹÓÃͳһÌ×ÖÐÑë˵»°£¬£¬£¬£¬£¬£¬£¬£¬²»ÂÛÊÇLd_A»¹ÊÇInitConst¶¼¼æÈÝJITµÄÈ«¹ý³Ì£¬£¬£¬£¬£¬£¬£¬£¬±¾·ì϶Äܹ»Ã÷È·ÒÔΪÊÇÒ»¸öÒµÎñÂß¼­·ì϶¡£ ¡£ ¡£¡£¡£¡£¡£¡£


²Î¿¼Á´½Ó£º

1.https://portal.msrc.microsoft.com/en-us/security-guidance/acknowledgments

2.https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0768