GA»Æ½ð¼×ADLab£ºChrome ËÁÒâ´úÂëÖ´Ðзì϶·ÖÎö
°ä²¼¹¦·ò 2021-04-164ÔÂ13ÈÕ£¬¹ú±í°²È«×êÑÐÈËÔ±ÔÚÉ罻ýÌåÉϰ䲼ÁËChrome µÄ0Day ·ì϶£¨°Ý¼û²Î¿¼Á´½Ó[1]£©£¬·ì϶±àºÅΪCVE-2021-21220£¬²¢ÔÚgithubÉϹ«¿ªÁ˸÷ì϶µÄPOCÒÔ¼°ÀûÓôúÂ룬ÓйصÄÀûÓôúÂëÔڹعØÉ³ºÐµÄÇé¿öÏ¿ɴﵽԶ³Ì´úÂëÖ´ÐС£ÓÉÓÚchromium Óйؿò¼ÜµÄ¿í·ºÀûÓ㬸÷ì϶ÔÚÆäËûä¯ÀÀÆ÷»ò¾ç±¾ÒýÇæÖÐÈÔÓдæÔڵĿÉÄÜ¡£¸Ã·ì϶ÔÚchrome 90.0.4430.72°æ±¾ÒѾ½¨¸´£¬ÌáÐÑ¿í´óÓû§ÊµÊ±¸üе½×îа汾£¨°Ý¼û²Î¿¼Á´½Ó[2]£©£¬ÒÔ¶ã±Ü¸Ã·ì϶´æÔڵĹ¥»÷·çÏÕ¡£
GA»Æ½ð¼×ADLab·ÖÎö·¢ÏÖ£¬¸Ã·ì϶´æÔÚÓÚChrome µÄJavaScript ½âÎöÒýÇæV8ÖУ¬POCÖØÒª´úÂëÈçÏ£º

ÔÚPOC line4Ö´ÐÐÒì»ò²Ù×÷,(2**31)^0=-2147483648¡£Æ¾¾ÝECMA³ß¶È£¨°Ý¼û²Î¿¼Á´½Ó[3]£©£¬Òì»òµÄÁ˾ÖÊÇ32λÕûÊý£º

ÔÚv8 SimplifiedLowering½×¶Î£¬Ôö³¤Á˶ÔÒì»òµÄÁ˾ÖÖ´ÐÐChangeInt32ToInt64µÄ²Ù×÷£º

SimplifiedLowering Ö´Ðкó£¬Òì»òµÄÀàÐͱ»ÏóÕ÷ΪWord32:

ÔÚMachineOperatorOptimizer½×¶Î£¬ÓÉÒò¶øºÍ0×öÒì»ò£¬ËùÒÔÓÃ×ó²Ù×÷Êý°ü°ìÒì»ò²Ù×÷¡£

´ËʱµÄ½á¹¹Í¼ÈçÏ£¬Äܹ»¿´³öÒì»òµÄÁ˾ÖÊÇWord32|TypeUint32:

ÔÚÖ¸ÁîÑ¡Ôñʱ£¬¶ÔÓÚVisitChangeInt32ToInt64²Ù×÷£¬Æ¾¾ÝÆäÊäÈëÀàÐÍÑ¡Ôñ²Ù×÷Â룺

ËùÒÔ£¬ÕâÀïµÄ²Ù×÷ÂëÊÇkX64Movl²Ù×÷Â룬¸ÃÖ¸ÁîÔÚ½«Ô´²Ù×÷ÊýÒÆÖÁÖ÷ÕŵØÎ»Ê±²¢²»×ö·ûºÅÀ©´ó£¬ÕâÑùÔÚPOCline4ÖÐxµÄֵΪ2147483649£¬Òò¶øÔÚpoc line12µÄµØÎ»£¬±àÒëÆ÷ÆäʵʹÓõÄÊÇx=1µÄÖµ×÷Ϊ´´½¨Êý×éµÄ³¤¶È¡£ÕâÊDZàÒëÆ÷Î´ÔøÒâÁϵ½µÄÇé¿ö¡£
ÔÚ±äÁ¿µÄÁìÓò·ÖÎöÖУ¬±àÒëÆ÷ÒÔΪ´´½¨µÄÊý×鳤¶ÈÊÇ0:

ÔÚÖ´ÐÐPOPʱ£¬»áÏÈÅжÏÊý×éµÄ³¤¶ÈÊÇ·ñΪ0£¬ÈôÊDz»ÊǾͻὫÆä³¤¶È¼õ1£º

ÓÉÓÚÊý×鳤¶È¹Ì¶¨£¬±àÒëÆ÷ÔÚLoadElimination µÄ¹ý³ÌÖÐ»á½øÐг£Á¿ÕÛµþ£¬ÔÚ´úÂëõè¾¶×ßµ½ÕâÀïµÄʱ³½Í¨¹ýStoreField²Ù×÷½«Êý×éµÄ³¤¶ÈÖ±½Ó¸³ÖµÎª-1£º


ÓÉÒò¶øsmi£¬ËùËùÒÔ0xfffffffe£º

´òÓ¡Êý×鳤¶È£º

Õâʱ³¬³¤µÄÊý×é¾Í³ö¯ÁË£¬ÈÎÓÉÄãÍæÁË¡£´Ó²¹¶¡¶Ô±ÈÉÏÀ´¿´£¨°Ý¼û²Î¿¼Á´½Ó[4]£©£¬¶ÔÓÚChangeInt32ToInt64½«ÆäÊäÈë×÷ΪÓзûºÅ¶Ô´ý£¬ÕâÑù¾ÍÔ¤·ÀÁ˸÷ì϶ͨ¹ý¸Ãõè¾¶´¥·¢¡£

¹ØÓÚÀûÓõIJ¿ÃÅ£¬¸ù»ùÊÇÀÏÌ×·£¬ÕâÀï¾Í²»ÔÙ׸Êö¡£
²Î¿¼Á´½Ó£º
[1]https://twitter.com/r4j0x00/status/1381643526010597380
[2]https://www.google.com/chrome/
[3]https://www.ecma-international.org/publications-and-standards/standards/ecma-262/
[4]https://chromium-review.googlesource.com/c/v8/v8/+/2820971/3/src/compiler/backend/x64/instruction-selector-x64.cc#1379
GA»Æ½ð¼×»ý¼«·ÀÓù³¢ÊÔÊÒ£¨ADLab£©
ADLab³ÉÁ¢ÓÚ1999Ä꣬ÊÇÖйú°²È«ÐÐÒµ×îÔç³ÉÁ¢µÄ¹¥·À¼¼Êõ×êÑг¢ÊÔÊÒÖ®Ò»£¬Î¢ÈíMAPP´òËãÖ÷Ìâ³ÉÔ±£¬¡°ºÚȸ¹¥»÷¡±¸ÅÏëÊ×ÍÆÕß¡£½ØÖ¹Ä¿Ç°£¬ADLabÒÑͨ¹ýCVEÀۼư䲼°²È«·ì϶½ü1100¸ö£¬Í¨¹ý CNVD/CNNVDÀۼư䲼°²È«·ì϶1000Óà¸ö£¬³ÖÐøÎ¬³Ö¹ú¼ÊÍøÂ簲ȫÁìÓòÒ»Á÷Ë®×¼¡£³¢ÊÔÊÒ×êÑз½Ïòº¸Ç²Ù×÷ϵͳÓëÀûÓÃϵͳ°²È«×êÑÓ×¢ÖÇÄÜÖն˰²È«×êÑÓ×¢ÎïÁªÍøÖÇÄÜÉ豸°²È«×êÑÓ×¢Web°²È«×êÑÓ×¢¹¤¿ØÏµÍ³°²È«×êÑÓ×¢ÔÆ°²È«×êÑС£×êÑгɾÍÀûÓÃÓÚ²úÆ·Ö÷Ìâ¼¼Êõ×êÑÓ×¢¹ú¶È³Áµã¿Æ¼¼ÏîÄ¿¹¥¹Ø¡¢×¨Òµ°²È«·þÎñµÈ¡£



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