AndroidÀ¶ÑÀ×Óϵͳ¡°BlueFrag¡±·ì϶·ÖÎö£¨CVE-2020-0022£©
°ä²¼¹¦·ò 2020-02-13Ò»¡¢·ì϶²¼¾°
2020Äê2Ô£¬£¬£¬£¬£¬Android°²È«²¼¸æÖÐÅû¶²¢½¨¸´ÁËÒ»¸öÑϳÁ·ì϶£¬£¬£¬£¬£¬·ì϶±àºÅΪCVE-2020-0022£¬£¬£¬£¬£¬ÓÖ³ÆBlueFrag£¬£¬£¬£¬£¬¿ÉÓ°ÏìAndroidÀ¶ÑÀ×Óϵͳ¡£¡£¡£¡£¡£¸Ã·ì϶ÊÇÒ»¸öÔ¶³Ì´úÂëÖ´Ðзì϶£¬£¬£¬£¬£¬³Ê´Ë¿ÌBluedroidÀ¶ÑÀºÍ̸ջµÄHCI²ã£¬£¬£¬£¬£¬µ±ÎÞÏßÄ£¿£¿£¿£¿£¿é´¦Óڻ״̬ʱ£¬£¬£¬£¬£¬¹¥»÷ÕßÄܹ»ÀûÓÃÀ¶ÑÀÊØ»¤·¨Ê½ÌáÉýȨÏÞ½ø¶øÔÚÉ豸ÉÏÖ´ÐдúÂë¡£¡£¡£¡£¡£¸Ã·ì϶ӰÏìAndroid Oreo£¨8.0ºÍ8.1£©¡¢Pie£¨9£©£¬£¬£¬£¬£¬µ«ÎÞ·¨ÔÚAndroid 10ÉϽøÐÐÀûÓ㬣¬£¬£¬£¬½öÄÜ´¥·¢DoS¹¥»÷¡£¡£¡£¡£¡£
¶þ¡¢ºÍ̸¼ò½é
2.1 HCI
HCI ²ãλÓÚÀ¶ÑÀºÍ̸ջ¸ß²ãºÍ̸ºÍµÍ²ãºÍ̸֮¼ä£¬£¬£¬£¬£¬ÌṩÁ˶Իù´ø½ÚÔìÆ÷ºÍÁ´Â·ÖÎÀíÆ÷µÄºÅÁîÒÔ¼°½Ó¼ûÀ¶ÑÀÓ²¼þµÄͳһ½Ó¿Ú²½Ö裬£¬£¬£¬£¬Æä½Ó¿ÚºÏÓÃÓÚBR/EDR½ÚÔìÆ÷¡¢BR/EDR/LE½ÚÔìÆ÷¡¢LE½ÚÔìÆ÷¡¢AMP½ÚÔìÆ÷£¬£¬£¬£¬£¬Óëµ×²ãµÄ½á¹¹¹ØÏµÈçÏÂͼ£º
Ö÷»úϵͳÉϵÄHCIÇý¶¯·¨Ê½ºÍ½ÚÔìÆ÷ÖеÄHCI²ãÖ®¼ä»á´æÔÚÖÐÑë²ã£¬£¬£¬£¬£¬ ÕâЩÖÐÑë²ã¼´ÊÇÖ÷»ú½ÚÔìÆ÷´«Êä²ã£¬£¬£¬£¬£¬ÕâЩ´«Êä²ãÊÇͨÃ÷µÄ£¬£¬£¬£¬£¬Ö»ÐèʵÏÖ´«ÊäÊý¾ÝµÄ¹¤×÷£¬£¬£¬£¬£¬²»ÓÃÃ÷ÏÔÊý¾ÝµÄ¾ßÌåÌåʽ¡£¡£¡£¡£¡£Á½¸öÀ¶ÑÀÉ豸µã¶ÔµãHCI²ãµÄ½»»¥¹ý³ÌÈçÏÂͼËùʾ£º
2.1.1 HCI°üÌåʽ
HCIͨ¹ý°üµÄ·½Ê½À´´«ËÍÊý¾Ý¡¢ºÅÁîºÍÊÂÎñµÄ£¬£¬£¬£¬£¬ËùÓÐÔÚÖ÷»úºÍÖ÷»ú½ÚÔìÆ÷Ö®¼äµÄͨѶ¶¼ÒÔ°üµÄ´ó¾Ö½øÐС£¡£¡£¡£¡£Ô̺¬Ã¿¸öºÅÁîµÄ·µ»Ø²ÎÊý¶¼Í¨¹ýÌØ¶¨µÄÊÂÎñ°üÀ´´«Êä¡£¡£¡£¡£¡£HCIº±¼û¾Ý¡¢ºÅÁîºÍÊÂÎñÈýÖÖÀàÐ͵İü¡£¡£¡£¡£¡£ºÅÁî°üCOMMAND£¨0x01£©Ö»ÄÜ´ÓÖ÷»ú·¢ÍùÖ÷»ú½ÚÔìÆ÷£¬£¬£¬£¬£¬ÆäÖÐÊý¾Ý°üÊÇË«ÏòµÄ£¬£¬£¬£¬£¬·ÖΪÁ½ÀࣺACL£¨0x02£©¡¢SCO£¨0x03£©£¬£¬£¬£¬£¬¶øÊÂÎñ°üEVENT£¨0x04£©Ê¼ÖÕÊÇÖ÷»ú½ÚÔìÆ÷·¢ÏòÖ÷»úµÄ¡£¡£¡£¡£¡£Ö÷»ú·¢³öµÄ´óÎÞÊýºÅÁî°ü³ÇÊд¥·¢Ö÷»ú½ÚÔìÆ÷²úÉúÏàÓ¦µÄÊÂÎñ°ü×÷ΪÏìÓ¦£¬£¬£¬£¬£¬ÔÚ´«Êä¹ý³ÌÖлáÓÐÒ»¸ö¾ä±ú£¬£¬£¬£¬£¬ÓÃÓÚ¼ø±ðÖ÷»úÖ®¼äµÄÂ߼ͨ·ºÍ½ÚÔìÆ÷£¬£¬£¬£¬£¬¹²ÓÐÈýÖÖÀàÐ͵ľä±ú£ºÏνӾä±ú¡¢Âß¼Á´Â·¾ä±úºÍÎïÀíÁ´Â·¾ä±ú¡£¡£¡£¡£¡£
ƾ¾Ý±ØÒª£¬£¬£¬£¬£¬ÕâÀïÖ»½éÉÜACLÊý¾Ý°üÌåʽ£¬£¬£¬£¬£¬ACL Êý¾ÝÓÃÓÚÖ÷»úºÍ½ÚÔìÆ÷Ö®¼äµÄ·Çͬ²½Êý¾Ý»¥»»£¬£¬£¬£¬£¬Èç²¥·ÅÒôÀÖÊý¾ÝµÄÊý¾Ý°ü£¬£¬£¬£¬£¬ÌåʽÈçÏÂͼ£º
ÿ¸ö×ֶεÄ×¢Ã÷ÈçÏÂËùʾ£º
|
×Ö¶Î |
×¢Ã÷ |
|
Handle |
Connection_HandleÓÃÓÚÔÚÖ÷½ÚÔìÆ÷ÉÏ´«ÊäÊý¾Ý°ü»ò¶Î¡£¡£¡£¡£¡£ |
|
PB Flag |
°üÌìǵºÍÊÊÓ¦ÁìÓò¡£¡£¡£¡£¡£ |
|
BC Flag |
¹ã²¥±êÖ¾¡£¡£¡£¡£¡£ |
|
Data Total Length |
ÒÔ°Ëλλ×éΪµ¥ÔªµÄÊý¾Ý³¤¶È£¬£¬£¬£¬£¬Ô̺¬¸ß²ãºÍ̸data¡£¡£¡£¡£¡£ |
ÆäÖУ¬£¬£¬£¬£¬PB FlagµÄÃèÊöÈçÏ£º
ÉèÖÃΪ 00'b µÄʱ³½£¬£¬£¬£¬£¬´ú±í Host -> Contoller µÄ L2CAP µÄÊ×°ü¡£¡£¡£¡£¡£ÉèÖÃΪ 01¡¯b µÄʱ³½£¬£¬£¬£¬£¬´ú±í Host -> Contoller »òÕß Contoller -> Host µÄ L2CAP µÄÐø°ü£¨ÖÐÑëµÄ£©¡£¡£¡£¡£¡£ÉèÖÃΪ 10'b µÄʱ³½£¬£¬£¬£¬£¬´ú±í Contoller -> Host µÄ L2CAP µÄÊ×°ü¡£¡£¡£¡£¡£
2.1.2 ·Ö¶Î£¨Fragmentation£©ºÍ³Á×飨Reassembly £©
·Ö¶ÎÊǽ«PDU·Ö»¯³É½ÏÓ׵IJ¿ÃÅ£¬£¬£¬£¬£¬ÒÔ±ã´ÓL2CAP´«µÝµ½½ÏµÍ²ã¡£¡£¡£¡£¡£³Á×éÊÇÆ¾¾Ý´Ó»ù²ã´«µÝÀ´µÄƬ¶Î³Á×éPDUµÄ¹ý³Ì¡£¡£¡£¡£¡£·Ö¶ÎºÍ³Á×éÄܹ»ÀûÓÃÓÚÈκÎL2CAP PDU¡£¡£¡£¡£¡£
2.2 L2CAPÊý¾Ý°üÌåʽ
L2CAPÊÇ»ùÓÚ·Ö×éµÄ£¬£¬£¬£¬£¬µ«Ò²×ñÑÐÅ·´«ÊäµÄͨѶģÐÍ¡£¡£¡£¡£¡£L2CAPÖ§³ÖµÄÐÅ·ÓÐÁ½ÖÖ£ºÃæÏòÏνӵÄÐÅ·ºÍÃæÏòÎÞÏνӵÄÐÅ·¡£¡£¡£¡£¡£ÔÚÃæÏòÏνӵÄÐÅ·ÖУ¬£¬£¬£¬£¬L2CAPÊý¾Ý°üµÄÌåʽÈçÏÂͼËùʾ¡£¡£¡£¡£¡£
Êý¾Ý°üÖÐÿ¸ö×ֶεÄ×¢Ã÷ÈçÏÂËùʾ£º
|
×Ö¶Î |
×¢Ã÷ |
|
Length |
2×Ö½Ú£¬£¬£¬£¬£¬°µÊ¾ÐÅÏ¢ÓÐЧ¸ºÔصĴóÓ×£¬£¬£¬£¬£¬²»Ô̺¬³¤¶ÈL2CAPÍ·¡£¡£¡£¡£¡£ |
|
Channel ID£¨CID£© |
2×Ö½Ú£¬£¬£¬£¬£¬ÓÃÓÚ±êʶÖ÷ÕÅÐÅ·µÄÖÕ¶Ë¡£¡£¡£¡£¡£Í¨Â·IDµÄÁìÓòÓëÔÚ·¢ËÍÊý¾Ý°üµÄÉ豸Óйء£¡£¡£¡£¡£ |
|
Information£¨Payload£© |
ÐÅÏ¢¸ºÔØ¡£¡£¡£¡£¡£³¤¶ÈΪ0µ½65535×Ö½Ú¡£¡£¡£¡£¡£ |
Èý¡¢·ì϶µÀÀí·ÖÎö
CVE-2020-0022·ì϶λÓÚHCI²ã£¬£¬£¬£¬£¬·ì϶²¹¶¡´úÂëλÓÚhci/src/packet_fragmenter.cc£¨ÒÔ8.1.0_r33ΪÀý£©ÖеÄreassemble_and_dispatch()º¯ÊýÖУ¬£¬£¬£¬£¬¸Ãº¯ÊýÊÇÓÃÓÚÊý¾Ý°ü·Ô쬵ijÁ×é¡£¡£¡£¡£¡£¶ÔÓÚ¹ý³¤µÄACLÊý¾Ý°ü±ØÒª½øÐаüµÄ³Á×飬£¬£¬£¬£¬ÖØÒªÊÇÆ¾¾ÝACL°üÖеÄPB Flag±ê־λ½øÐгÁ×飬£¬£¬£¬£¬ÈôÊǵ±Ç°ÊÇÕØÊ¼²¿ÃŲ¢ÇÒÊDz»ÆëÈ«µÄ£¬£¬£¬£¬£¬ÔòÌìÉúÒ»¸ö²¿ÃŰü£¨partial_packet£©·Åµ½mapÀ£¬£¬£¬£¬µÈÏ´ÎÊÕµ½ËüµÄºóÐø²¿ÃŽøÐÐ×é×°£¬£¬£¬£¬£¬×é×°½áÊøºó¾Í·Ö·¢³öÈ¥¡£¡£¡£¡£¡£¾ßÌå·ÖÎöreassemble_and_dispatch()º¯ÊýÈçÏ£º
Ê×ÏÈ£¬£¬£¬£¬£¬´¦ÖõÚÒ»¸öpacket£¬£¬£¬£¬£¬´úÂë127Ðе½129ÐУ¬£¬£¬£¬£¬±ðÀë¶ÁÈ¡handle¡¢acl_lengthºÍl2cap_length¡£¡£¡£¡£¡£handleΪ±¾´ÎÁ´Â·µÄConnection_Handle¡£¡£¡£¡£¡£Æ¾¾ÝǰÎÄÊý¾Ý°üÌåʽµÄ½éÉÜ£¬£¬£¬£¬£¬acl_lengthΪData Total Length£¬£¬£¬£¬£¬¸ÃdataÊý¾ÝÓòÖдæ·Å×ÅL2CAPÊý¾Ý°ü·Ô쬣¨Ò²¿ÉÄÜÊÇÒ»¸öÆëÈ«µÄL2CAPÊý¾Ý°ü£©¡£¡£¡£¡£¡£¶øºó£¬£¬£¬£¬£¬Ö±½Ó¶ÁÈ¡dataÖÐL2CAP Length£¬£¬£¬£¬£¬¸Ãl2cap_lengthÊÇÒ»¸öÆëÈ«µÄL2CAPÊý¾Ý°üÖÐpayloadµÄ³¤¶È¡£¡£¡£¡£¡£ÐÐ131£¬£¬£¬£¬£¬Ð£Ñépacket°ü³¤¶ÈÊÇ·ñÕý³£¡£¡£¡£¡£¡£ÐÐ133£¬£¬£¬£¬£¬Í¨¹ýhandle»ñÈ¡boundary_flag£¬£¬£¬£¬£¬¼´ÊÇPB Flag¡£¡£¡£¡£¡£
ÐÐ136£¬£¬£¬£¬£¬ÅжÏboundary_flagÊÇ·ñΪ2£¬£¬£¬£¬£¬¶þ½øÔ찵ʾΪ10¡¯b£¬£¬£¬£¬£¬¼´Åжϵ±Ç°packetÊÇ·ñΪ Contoller -> Host µÄ L2CAP µÄÊ×°ü£¬£¬£¬£¬£¬ÈôÊÇÊÇ£¬£¬£¬£¬£¬½øÈëifÓï¾ä¡£¡£¡£¡£¡£ÐÐ137µ½ÐÐ147£¬£¬£¬£¬£¬Åжϵ±Ç°packetÊÇ·ñÒѾ±»´¦Ö㬣¬£¬£¬£¬±£Õϱ¾´Î´¦ÖõÄpacket¶¼ÊÇ×îеġ£¡£¡£¡£¡£ÐÐ149µ½ÐÐ154£¬£¬£¬£¬£¬ÅжÏL2CAPÊý¾Ý°ü³¤¶ÈÊÇ·ñÕý³££¬£¬£¬£¬£¬²»Õý³£Ö±½Ó±¨´í·µ»Ø¡£¡£¡£¡£¡£
½ÓÏÂÀ´£¬£¬£¬£¬£¬ÐÐ156µ½ÐÐ157£¬£¬£¬£¬£¬ÍÆËãfull_length£¬£¬£¬£¬£¬ÆäÖÐÔ̺¬Ò»¸öÆëÈ«µÄL2CAPÊý¾Ý°üÖеÄpayloadµÄ³¤¶È£¬£¬£¬£¬£¬Ò»¸öL2CAPÍ·²¿³¤¶ÈºÍÒ»¸öHCIÍ·²¿³¤¶È¡£¡£¡£¡£¡£ÐÐ161µ½ÐÐ168£¬£¬£¬£¬£¬ÅжÏfull_lengthÊÇ·ñ³¬¹ýBT_DEFAULT_BUFFER_SIZE£¬£¬£¬£¬£¬ÈôÊdz¬¹ýÖ±½Ó±¨´í·µ»Ø¡£¡£¡£¡£¡£ÐÐ170µ½ÐÐ178£¬£¬£¬£¬£¬Åжϵ±Ç°Í·°üpacketÊÇ·ñ»¹ÓÐÐø°ü£¬£¬£¬£¬£¬ÈôÊÇûÓÐÐø°üÖ±½ÓŲÓÃcallbacks->reassembled´¦Öõ±Ç°packet²¢·µ»Ø¡£¡£¡£¡£¡£
ÈôÊǵ±Ç°Í·°üpacketºóÃæ»¹ÓÐÐø°ü£¬£¬£¬£¬£¬ÄÇ¾ÍÆðÍ·³ÁзÖÅäÒ»¿éеÄÄÚ´æÓÃÓÚpacketÖÐÊý¾Ý°ü³Á×é¡£¡£¡£¡£¡£ÐÐ180µ½184£¬£¬£¬£¬£¬·ÖÅä²¢ÉèÖÃpartial_packet£¬£¬£¬£¬£¬½«partial_packet->lenÉèÖÃΪfull_length£¬£¬£¬£¬£¬½«partial_packet->offsetÉèÖÃΪpacket->len¼´µ±Ç°Í·°üpacket->dataµÄ³¤¶È¡£¡£¡£¡£¡£ÐÐ186£¬£¬£¬£¬£¬Å²ÓÃmemcpy£¬£¬£¬£¬£¬½«Í·°üpacketÖÐHCIÊý¾Ý°üÕûÌ忽±´µ½partial_packetÖС£¡£¡£¡£¡£ÐÐ189µ½ÐÐ191£¬£¬£¬£¬£¬ÏÈÕÒµ½HCIÊý¾Ý°üÍ·²¿£¬£¬£¬£¬£¬²¢Ìø¹ýhandle£¬£¬£¬£¬£¬¸üÐÂacl_lengthΪһ¸öÆëÈ«µÄL2CAPÊý¾Ý°ü³¤¶È¡£¡£¡£¡£¡£ÐÐ193£¬£¬£¬£¬£¬½«partial_packet´æ·Åµ½ÈÝÆ÷ÖС£¡£¡£¡£¡£ÐÐ196£¬£¬£¬£¬£¬¿ªÊ͵±Ç°Í·°üpacket£¬£¬£¬£¬£¬°µÊ¾ÒѾ´¦ÖÃÍêµÚÒ»¸öpacket£¬£¬£¬£¬£¬²»ÔÙ±ØÒªËüÁË¡£¡£¡£¡£¡£ÐÐ197£¬£¬£¬£¬£¬elseÓï¾äÆðÍ·´¦ÖúóÐøpacket£¬£¬£¬£¬£¬¼´boundary_flag²»µÅ×Ú2µÄpacket¡£¡£¡£¡£¡£
ÐÐ198µ½ÐÐ205£¬£¬£¬£¬£¬Ê×ÏÈͨ¹ýhandleÅжϵ±Ç°ºóÐøpacketÊÇ·ñÊôÓÚ±¾´ÎÁ´Â·µÄ£¬£¬£¬£¬£¬ÈôÊDz»ÊôÓÚ£¬£¬£¬£¬£¬Ö±½Ó·µ»Ø¡£¡£¡£¡£¡£ÐÐ206£¬£¬£¬£¬£¬»ñȡǰһÂÖÌìÉúµÄpartial_packet¡£¡£¡£¡£¡£ÐÐ208£¬£¬£¬£¬£¬½«µ±Ç°ºóÐøpacket->offset¸³ÖµÎªHCI_ACL_PREAMBLE_SIZE¼´4×Ö½Ú£¬£¬£¬£¬£¬´Ëʱpacket->offsetÖ¸ÏòHCI°üÖеÄdataÓò£¬£¬£¬£¬£¬ÀïÃæ´æ·Å×ÅL2CAPÊý¾Ý°ü·Ô쬡£¡£¡£¡£¡£ÐÐ209ºÍÐÐ210£¬£¬£¬£¬£¬ÍÆËãprojected_offset£¬£¬£¬£¬£¬projected_offsetΪpartial_packet->offsetÓë±¾´ÎL2CAPÊý¾Ý°ü·Ô쬵ij¤¶ÈÖ®ºÍ¡£¡£¡£¡£¡£
ÐÐ211ºÍÐÐ219£¬£¬£¬£¬£¬ÅжÏprojected_offsetÊÇ·ñ´óÓÚpartial_packet->len,¼´ÅжÏprojected_offsetÊÇ·ñ´óÓÚfull_length¡£¡£¡£¡£¡£ÈôÊÇ´óÓÚ£¬£¬£¬£¬£¬ÔòÅú¸Äpacket->lenΪpartial_packet->len¼õÈ¥partial_packet->offset£¬£¬£¬£¬£¬¼´packet->lenΪpartial_packetÔü×Ò¿Õ¼äµÄ³¤¶È¡£¡£¡£¡£¡£¶øºó£¬£¬£¬£¬£¬½«projected_offsetÉèÖÃΪpartial_packet->len¡£¡£¡£¡£¡£¾ßÌåÊý¾Ý°ü³Á×éÈçÏÂͼËùʾ£º
½¨¸ÄºÃÏÖʵҪ¿½±´µÄ³¤¶Èºó£¬£¬£¬£¬£¬ÐÐ221£¬£¬£¬£¬£¬Å²ÓÃmemcpy½øÐп½±´£¬£¬£¬£¬£¬·ì϶µãµ½ÁË,µÚÒ»¸ö²ÎÊýΪpartial_packet->data + partial_packet->offset,Ö÷ÕŵØÖ·ÊÇÕýÈ·µÄ£¬£¬£¬£¬£¬µÚ¶þ¸ö²ÎÊýΪpacket->data + packet->offset£¬£¬£¬£¬£¬Ô´µØÖ·Ò²ÊÇÕýÈ·µÄ£¬£¬£¬£¬£¬µÚÈý¸ö²ÎÊýÊÇÒª¿½±´µÄ³¤¶ÈlenΪpacket->len - packet->offset£¬£¬£¬£¬£¬Õâ¸öÖµÊÇÓÐÎÊÌâµÄ£¬£¬£¬£¬£¬·ÖÁ½ÖÖÇé¿ö¡£¡£¡£¡£¡£µÚÒ»ÖÖÇé¿öÊÇprojected_offsetÓ×ÓÚpartial_packet->len£¬£¬£¬£¬£¬packet->len - packet->offsetΪL2CAPÊý¾Ý°üƬ¶Î×ܳ¤¶È£¬£¬£¬£¬£¬²¢ÇÒÊǸöÕýÊý¡£¡£¡£¡£¡£µÚ¶þÖÖÊÇÐÐ211µÄÇé¿ö£¬£¬£¬£¬£¬packet->lenÒѾ±»½¨×ÔУ¬£¬£¬£¬£¬²»±ØÒªÔÙÒ»´Îpacket->len - packet->offsetµÄ²Ù×÷£¬£¬£¬£¬£¬ÈôÊÇpartial_packetÔü×ҿռ䳤¶ÈÓ×ÓÚ4×Ö½Ú£¬£¬£¬£¬£¬ÄÇpacket->len - packet->offset ÊÇÓ×ÓÚÁãµÄ£¬£¬£¬£¬£¬ÊÇÒ»¸ö¸ºÊý¡£¡£¡£¡£¡£ÓÉÓÚmemcpy()º¯ÊýµÚÈý¸ö²ÎÊýÀàÐÍÊÇÒ»¸öÎÞ·ûºÅÕûÐÍÀàÐÍ£¬£¬£¬£¬£¬Òò¶øÕûÊýÒç³öµ¼Ö¶ÑÒç³ö¡£¡£¡£¡£¡£·ì϶²¹¶¡ÈçÏ£º
Äܹ»¿´µ½£¬£¬£¬£¬£¬²¹¶¡´úÂëÖн«packet->len¼ÓÉÏÁËÒ»¸öpacket->offset£¬£¬£¬£¬£¬ÓÃÓÚºóÃæµÖÏû¼õpacket->offsetµÄ²Ù×÷¡£¡£¡£¡£¡£
ËÄ¡¢Ó°Ïì°æ±¾
Android Oreo£¨8.0ºÍ8.1£©
Android Pie£¨9£©
Android 10
Îå¡¢°²È«½¨Òé
¾¡¿ì¸üÐÂ×îеÄAndroid°²È«²¹¶¡
½öÔÚ¾ø¶Ô±ØÒªÊ±ÆôÓÃÀ¶ÑÀ
ά³ÖÀ¶ÑÀÉ豸²»³É·¢ÏÖ
²Î¿¼ÐÅÏ¢£º
1.https://insinuator.net/2020/02/critical-bluetooth-vulnerability-in-android-cve-2020-0022/
2.https://akhozo.blogspot.com/2020/02/critical-android-bluetooth-flaw-cve.html?spref=tw
3.https://android.googlesource.com/platform/system/bt/+/3cb7149d8fed2d7d77ceaa95bf845224c4db3baf%5E%21/#F0
4.https://source.android.com/security/bulletin/2020-02-01.html
5.http://androidxref.com/8.1.0_r33/xref/system/bt/hci/src/packet_fragmenter.cc
6.Bluetooth_Core_v4.2À¶ÑÀ¹Ù·½Îĵµ


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