AndroidÀ¶ÑÀ×é¼þÎó²îÁ¬Á¬¿´

Ðû²¼Ê±¼ä 2018-08-15

1¡¢¸ÅÊö

 

        AndroidϵͳÖÐ £¬£¬£¬À¶ÑÀ×é¼þ¿ÉÒÔ˵ÊÇÇå¾²Îó²îÖØÔÖÇø £¬£¬£¬2017ÄêArmisSecurityÇå¾²ÍŶÓÐû²¼BlueBorne×éºÏÎó²î¹¥»÷Á´¿ÉÒÔͨ¹ýÀ¶ÑÀ¶ÔÖÇÄÜÊÖ»ú¾ÙÐÐÔ¶³Ì¹¥»÷ £¬£¬£¬Î£º¦ÐÔ¼«´ó¡£ ¡£¡£¡£½ñÄêÈýÔ·ݵÄAndroidÇ徲ͨ¸æÖÐ £¬£¬£¬ÏµÍ³²ãÎó²îËùÓж¼ÊÇÀ¶ÑÀ×é¼þÎó²î £¬£¬£¬×ܹ²10¸ö¡£ ¡£¡£¡£Îó²î¶àÂþÑÜÔÚSDP£¨Ð§ÀÍ·¢Ã÷ЭÒ飩ºÍBNEP£¨À¶ÑÀÍøÂç·âװЭÒ飩ÖÐ £¬£¬£¬²¢ÇÒÎó²îÀàÐͶàÊÇÄÚ´æÔ½½ç¶Áд¡£ ¡£¡£¡£ËÄÔ·ݵÄÇ徲ͨ¸æÖÐ £¬£¬£¬×ܹ²ÓÐ7¸öÀ¶ÑÀ×é¼þÎó²î £¬£¬£¬¶àÂþÑÜÔÚAVRCP£¨ÒôƵ/ÊÓÆµÔ¶³Ì¿ØÖÆÉèÖÃÎļþ£©Ð­ÒéÖС£ ¡£¡£¡£ÁùÔÂ·ÝºÍÆßÔ·ÝAndroid Ç徲ͨ¸æÖÐÒÀÈ»Åû¶Á˶à¸öÀ¶ÑÀ×é¼þÎó²î £¬£¬£¬Éæ¼°À¶ÑÀЭÒéÕ»Öжà¸öЭÒé £¬£¬£¬Éæ¼°µÄÔ´Âë°æ±¾Îª6.0¡¢ 6.0.1¡¢ 7.0¡¢ 7.1.1¡¢7.1.2¡¢ 8.0¡¢ 8.1 £¬£¬£¬ÁýÕÖ¹æÄ£½Ï¹ã¡£ ¡£¡£¡£

 

        ±¾ÎĽ«ÏÈÈÝÀ¶ÑÀЭÒéÕ»ÖеÄL2CAPЭæÅºÍSMPЭÒé £¬£¬£¬²¢¶ÔCVE-2018-9359ºÍCVE-2018-9365ÕâÁ½¸öÎó²î°¸Àý¾ÙÐÐÏêϸÆÊÎö¡£ ¡£¡£¡£

 

2¡¢Ð­Òé¼ò½é

 

2.1 L2CAP

 

        L2CAP£¨Logical Link Control and Adaptation Protocol£©³ÆÎªÂß¼­Á´Â·ºÍÊÊÅäЭÒé £¬£¬£¬ÊÇÀ¶ÑÀϵͳÖеĽ¹µãЭÒé £¬£¬£¬Î»ÓÚÊý¾ÝÁ´Â·²ã¡£ ¡£¡£¡£L2CAPͨ¹ýЭÒé¶à·Ö¸´ÓᢷֶκÍÖØ×é £¬£¬£¬Ïò¸ß²ãÌá¹©ÃæÏòÅþÁ¬ºÍÎÞÅþÁ¬µÄÊý¾ÝЧÀÍ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

 

2.1.1 L2CAPÊý¾Ý°üÃûÌÃ

 

        L2CAPÊÇ»ùÓÚ·Ö×éµÄ £¬£¬£¬µ«Ò²×ñÕÕÐŵÀ´«ÊäµÄͨѶģ×Ó¡£ ¡£¡£¡£L2CAPÖ§³ÖµÄÐŵÀÓÐÁ½ÖÖ£ºÃæÏòÅþÁ¬µÄÐŵÀºÍÃæÏòÎÞÅþÁ¬µÄÐŵÀ¡£ ¡£¡£¡£ÔÚÃæÏòÅþÁ¬µÄÐŵÀÖÐ £¬£¬£¬L2CAPÊý¾Ý°üµÄÃûÌÃÈçÏÂͼËùʾ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

 

       Êý¾Ý°üÖÐÿ¸ö×ֶεÄ˵Ã÷ÈçÏÂËùʾ£º

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

 

2.1.2 L2CAPÐÅÁî

 

       

Á½Ì¨À¶ÑÀ×°±¸Í¨¹ýL2CAPЭÒéͨѶʱ £¬£¬£¬ËùÓеÄÐÅÁî¶¼±»·¢Ë͵½CIDΪ0x0001µÄÐŵÀÖС£ ¡£¡£¡£L2CAPÐÅÁîµÄÃûÌÃÈçÏÂËùʾ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

      

  L2CAPÐÅÁîÖÐÿ¸ö×ֶεÄ˵Ã÷ÈçÏÂËùʾ£º

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

      

  L2CAPЭÒé¹²ÓÐ12ÖÖÐÅÁîÀàÐÍ £¬£¬£¬¸÷ÐÅÁîµÄ×÷ÓÃÈçϱíËùʾ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

ÁíÍâ £¬£¬£¬¶à¸öÐÅÁî¿ÉÒÔÔÚͳһ¸öÖ¡Öз¢ËÍ £¬£¬£¬ÈçÏÂͼËùʾ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

 

2.2 SMP

 

        SMP£¨Security Manage Protocol£©ÊÇÀ¶ÑÀЭÒéÕ»ÖеÄÇå¾²ÖÎÀíЭÒé £¬£¬£¬ÈÏÕæÀ¶ÑÀ×°±¸Ö®¼äµÄÅä¶ÔºÍÃÜÔ¿·ÖÅÉ¡£ ¡£¡£¡£

       

SMPÏÂÁîÃûÌÃÈçÏÂͼËùʾ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

      

  ÆäÖÐ £¬£¬£¬Code×Ö¶ÎΪһ¸ö8bit £¬£¬£¬±êʶÏÂÁîµÄÀàÐÍ¡£ ¡£¡£¡£SMPÏÂÁîµÄÀàÐÍÈçϱíËùʾ¡£ ¡£¡£¡£Data×Ö¶ÎÔÚ³¤¶ÈÉÏÊǿɱäµÄ £¬£¬£¬ Code×ֶξöÒéData×ֶεÄÃûÌᣠ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

 

3¡¢Îó²îÔ­ÀíÆÊÎö

 

3.1 CVE-2018-9359

 

£¨ÒÔÏÂÆÊÎö»ùÓÚandroid-8.0.0_r4°æ±¾Ô´Â룩

 

        CVE-2018-9359Îó²îλÓÚL2CAPЭÒéÄ£¿£¿£¿£¿é £¬£¬£¬Îó²îÀàÐÍÊÇÔ½½ç¶Á¡£ ¡£¡£¡£¿£¿£¿£¿ÉÒÔͨ¹ý¹È¸è¹Ù·½Í¨¸æ¿´µ½Îó²î²¹¶¡¡£ ¡£¡£¡£Îó²î²¹¶¡´úÂëλÓÚ/stack/l2cap/l2c_main.ccÎļþÖеÄprocess_l2cap_cmdº¯ÊýÖÐ £¬£¬£¬¸Ãº¯ÊýÖ÷Òª¹¦Ð§ÊÇ´¦Öóͷ£ÎüÊÕµÄL2CAPЭÒéµÄÐÅÁî°ü¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

 ´Ó´úÂë291ÐÐ×îÏÈ £¬£¬£¬whileÑ­»·ÆÊÎöL2CAPÊý¾Ý°üÖÐËùÓеÄCOMMANDÏÂÁî¡£ ¡£¡£¡£Ê×ÏÈ¿´Ò»ÏÂÁ½¸öºê½ç˵£ºSTREAM_TO_UINT8´ÓpÖ¸ÏòµÄÊý¾Ý°üÖжÁÈ¡1¸ö×Ö½Ú £¬£¬£¬pÖ¸Õë¼Ó1£»£»£»£»STREAM_TO_UINT16ÿ´Î´ÓpÖ¸ÏòµÄÊý¾Ý°üÖжÁÈ¡2¸ö×Ö½Ú £¬£¬£¬pÖ¸Õë¼Ó2¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

³ÌÐòŲÓúêÒÀ´Î´ÓpÖ¸ÏòµÄÊý¾Ý°üÖжÁÈ¡cmd_code¡¢idºÍcmd_len×Ö¶Î,´ËʱpÓ¦¸ÃÖ¸ÏòdataÊý¾ÝÓòµÄ¿ªÍ·¡£ ¡£¡£¡£

       

 µ±Code=0x1 £¬£¬£¬´ú±íCommand rejectÊý¾Ý°ü £¬£¬£¬Êý¾Ý°ü½ç˵ÈçÏÂËùʾ¡£ ¡£¡£¡£µ±Length²»Îª0 £¬£¬£¬dataÊý¾ÝÓòÖаüÀ¨Á½¸ö×ֶΣºReason×Ö¶Î(2×Ö½Ú)ºÍData×ֶΡ£ ¡£¡£¡£

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

        ´¦Öóͷ£Command rejectÊý¾Ý°üµÄ·ÖÖ§´úÂëÈçÏ£º

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

      

  ´Ó´úÂë¿ÉÒÔ¿´³ö £¬£¬£¬³ÌÐòûÓÐÅжϸÃÏÂÁî°üÊÇ·ñ±£´ædataÊý¾ÝÓò £¬£¬£¬ÔÚ334ÐÐÖÐÖ±½ÓʹÓúê¶ÁÈ¡2¸ö×Ö½ÚµÄrej_reason¡£ ¡£¡£¡£Òò´ËÔÚÄÚ´æ¶ÑÖб¬·¢Ô½½ç¶ÁÎó²î¡£ ¡£¡£¡£

 

        ÕâÀïÒ²Ö´ÙDZ¬·¢ÁËÄÚ´æÔ½½ç¶ÁÈ¡ £¬£¬£¬Ã»Óн«¶ÁÈ¡µÄÊý¾Ýй¶µ½¿Í»§¶ËÖС£ ¡£¡£¡£ÏÂÃæÕÒµ½·¢ËÍ·µ»Ø°üµÄ´úÂë £¬£¬£¬Éó²éÔõÑù±¬·¢ÄÚ´æ×ß©¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

        ´Ó378ÐдúÂë×îÏÈÊÇÆÊÎöL2CAP_CMD_CONN_REQÏÂÁî·ÖÖ§ £¬£¬£¬379ÐдúÂë £¬£¬£¬ÏÈÔ½½ç¶ÁÈ¡Á½¸ö×Ö½ÚµÄcon_info.psm £¬£¬£¬380ÐдúÂëÔ½½ç¶ÁÈ¡Á½¸ö×Ö½ÚµÄrcid¡£ ¡£¡£¡£381ÐÐŲÓÃl2cu_find_rcb_by_psmº¯Êýͨ¹ýcon_info.psmÈ¥±éÀúѰÕÒ×¢²á¿ØÖÆ¿éµØµã¡£ ¡£¡£¡£ÕâÀï¼òÆÓÏÈÈÝÒ»ÏÂPSMÕâ¸ö¿´·¨¡£ ¡£¡£¡£

 

        PSMÈ«³ÆÎªProtocol/ServiceMultiplexer £¬£¬£¬PSMµÄ³¤¶È×îÉÙÊÇ2×Ö½Ú £¬£¬£¬ËüµÄÖµÓ¦µ±ÊÇÆæÊý £¬£¬£¬¾ÍÊÇ×îµÍµÄbyteµÄ×îµÍλ±ØÐèΪ1¡£ ¡£¡£¡£ÁíÍâ £¬£¬£¬PSMµÄ×î¸ßbyteµÄ×îµÍλӦµ±Îª0¡£ ¡£¡£¡£Ëü¿ÉÒÔ±È2×Ö½Ú³¤ £¬£¬£¬PSMÓÉÁ½¸ö¹æÄ£¶Î×é³É £¬£¬£¬µÚÒ»¸ö¹æÄ£¶ÎÊÇSIGÓÃÀ´ÌåÏÖ¶ÔÓ¦protocolµÄ £¬£¬£¬µÚ¶þ¸ö¹æÄ£¶ÎÊǶ¯Ì¬ÉêÇëµÄºÍSDPÁ¬ÏµÊ¹Óᣠ¡£¡£¡£Õâ¸öÖµÓÃÀ´Ö§³ÖÌØ¶¨protocolµÄ²î±ðʵÏÖ¡£ ¡£¡£¡£ÒÔÊÇ £¬£¬£¬ÔÚÉêÇëPSMµÄʱ¼ä¶¼ÊÇ´Ó0x1001×îÏÈÉêÇëµÄ¡£ ¡£¡£¡£Ôµ¹ÊÔ­ÓɾÍÊÇ0x0001~0x0eff¶¼ÊDZ»SIG±£´æµÄ¡£ ¡£¡£¡£ÄÇôÕâЩ±£´æµÄÖµ¶¼¸÷×Ô¶ÔÓ¦ÁËÄÄЩprotocolÄØ£¿£¿£¿£¿Ïêϸ¼ûÏÂͼ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

 ´úÂë382ÐÐÅжÏp_rcbÊÇ·ñΪNULL £¬£¬£¬ÈôÊÇΪ¿Õ¾ÍŲÓÃl2cu_reject_connectionº¯Êý £¬£¬£¬Ïêϸ¿´Ò»Ï¸ú¯Êý´úÂë¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

´Ó´úÂë520Ðе½523ÐÐ £¬£¬£¬Í¨¹ýºêUINT6_TO_STREAM½«Êý¾ÝдÈëpÖ¸ÏòµÄÄÚ´æÖС£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

 ÆäÖÐremote_cid¾ÍÊÇ֮ǰԽ½ç¶ÁÈ¡µÄÁ½¸ö×Ö½ÚÊý¾Ý¡£ ¡£¡£¡£½á¹¹ºÃÏìÓ¦Êý¾Ý°üºó £¬£¬£¬´úÂë525ÐÐŲÓÃl2c_link_check_send_pkts½«ÏìÓ¦°ü·¢Ë͵½¿Í»§¶Ë¡£ ¡£¡£¡£

       

ÔÚÁùÔ·ÝandroidÇ徲ͨ¸æÖÐ £¬£¬£¬CVE-2018-9359¡¢CVE-2018-9360¡¢CVE-2018-9361Èý¸öÎó²îµÄ²¹¶¡ÊÇÒ»ÑùµÄ¡£ ¡£¡£¡£²¿·Ö²¹¶¡´úÂëÈçÏ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

      

  ¿ÉÒÔ¿´³ö £¬£¬£¬²¹¶¡ÖÐÌí¼ÓÁ˳¤¶ÈÅжÏ¡£ ¡£¡£¡£ÈôÊÇp+2>p_next_cmd²»ÎªÕæ £¬£¬£¬ËµÃ÷±£´ædataÊý¾ÝÓò £¬£¬£¬È»ºó²Å×îÏȶÁÈ¡×Ö½Ú¡£ ¡£¡£¡£

 

3.2 CVE-2018-9365

 

£¨ÒÔÏÂÆÊÎö»ùÓÚandroid-8.0.0_r4°æ±¾Ô´Â룩

 

CVE-2018-9365ÊÇSMP£¨security manager protocol£©Ð­ÒéÖÐÒ»¸öÊý×éÔ½½çÎó²î¡£ ¡£¡£¡£¸ÃÎó²î·ºÆðÔÚsmp_sm_eventº¯ÊýÖÐ £¬£¬£¬´úÂë·¾¶Îª£º\smp\smp_main.cc¡£ ¡£¡£¡£¹È¸è¹Ù·½²¹¶¡´úÂëÈçÏ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

      

  ´Ó²¹¶¡ÖпÉÒÔ¿´µ½ £¬£¬£¬ÕâÀïÅжÏÁËp_cb->roleÊÇ·ñ´óÓÚ1 £¬£¬£¬ÈôÊÇ´óÓÚ1±¨´í·µ»Ø £¬£¬£¬²¹¶¡´úÂëÏÂÒ»ÐоÍÊÇÒÔp_cb->roleΪϱêÔÚsmp_entry_tableÊý×éÖвéÕÒ¡£ ¡£¡£¡£Smp_entry_tableÊý×é½ç˵ÈçÏ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

¿ÉÒÔ¿´µ½ £¬£¬£¬smp_entry_tableÊý×éÖÐÖ»ÓÐÁ½Ïî £¬£¬£¬Ò»¸öÊÇÕë¶ÔÖ÷×°±¸ £¬£¬£¬Ò»¸öÊÇÕë¶Ô´Ó×°±¸¡£ ¡£¡£¡£µ±ÓÐÊý¾Ý°üͨ¹ýL2CAPÔÚSMPÐŵÀÖÐÎüÊÕµ½Ê± £¬£¬£¬»áŲÓÃsmp_data_receivedº¯Êý¾ÙÐд¦Öóͷ£¡£ ¡£¡£¡£Smp_data_receivedº¯Êý´úÂëÈçÏ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

       

 ´úÂë146Ðж¨Î»µ½ÄÚ´æÖÐSMPÊý¾Ý°üλÖᣠ¡£¡£¡£´úÂë150ÐÐͨ¹ýSTREAM_TO_UINT8ºêÈ¡³öcmd¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

        

µÚ160ÐдúÂëÅжÏcmdµÄÀàÐÍÊÇ·ñΪÅä¶ÔÇëÇóÖ¸Áî»òÕßÇå¾²ÇëÇóÖ¸Áî¡£ ¡£¡£¡£ÈôÊÇÊÇ £¬£¬£¬µÚ164ÐÐ×îÏȶÔp_cb->role¾ÙÐи´ÖÆ¡£ ¡£¡£¡£Í¨¹ýÃû³ÆÅÐ¶Ï £¬£¬£¬L2CA_GetBleConnRoleº¯ÊýÓ¦¸ÃÊÇͨ¹ýÀ¶ÑÀµØµã»ñÈ¡À¶ÑÀ×°±¸µÄ½ÇÉ«ÐÅÏ¢¡£ ¡£¡£¡£¹ØÓÚÀ¶ÑÀ×°±¸À´Ëµ £¬£¬£¬Ö»ÓÐÁ½ÖÖ½ÇÉ« £¬£¬£¬Ò»ÊÇÖ÷×°±¸½ÇÉ« £¬£¬£¬¶þÊÇ´Ó×°±¸½ÇÉ«¡£ ¡£¡£¡£L2CA_GetBleConnRoleº¯Êý´úÂëÈçÏ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

     µÚ201Ðнç˵ÁËrole £¬£¬£¬Í¬Ê±¸ørole¸³ÖµÎªHCI_ROLE_UNKNOWN¡£ ¡£¡£¡£ºê½ç˵ÈçÏÂËùʾ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

 

        RoleÏȱ»¸´ÖÆÎª0xff £¬£¬£¬´úÂë205ÐÐÊÇͨ¹ýÀ¶ÑÀµØµã±éÀúѰÕÒp_lcb £¬£¬£¬ÈôÊÇp_lcbΪ¿Õ £¬£¬£¬ÔòÖ±½Ó·µ»ØHCI_ROLE_UNKNOWN¡£ ¡£¡£¡£P_cb->role±»¸³ÖµÎª0xffºó £¬£¬£¬ºóÐø´úÂëÖ±½ÓŲÓÃÁËsmp_sm_eventº¯Êý¡£ ¡£¡£¡£´úÂëÈçÏÂËùʾ¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

        ŲÓÃsmp_sm_eventº¯Êý £¬£¬£¬²¹¶¡Ç°µÄ´úÂëÔÚ957ÐÐÓÉÓÚûÓÐÅжÏp_cb->roleµÄ¾Þϸ £¬£¬£¬µ¼ÖÂÊý×éÔ½½ç»á¼û¡£ ¡£¡£¡£

 

ÈËÉú¾ÍÊDz©-×ðÁú¿­Ê±Öйú¹ÙÍø

 

4¡¢×ܽá

 

        ͨ¹ý¶Ô¶à¸öÀ¶ÑÀÎó²îµÄÆÊÎö £¬£¬£¬·¢Ã÷AndroidÀ¶ÑÀ×é¼þÖеÄÎó²î¶àÊǽÏΪ³õ¼¶µÄ´úÂëbugµ¼Ö嵀 £¬£¬£¬²¢ÇÒÎó²î¶à·ºÆðÔÚ¶ÔÊý¾Ý°üµÄÆÊÎö´úÂëÂß¼­ÖС£ ¡£¡£¡£Õë¶ÔÅû¶µÄÕâô¶àÀ¶ÑÀÎó²î £¬£¬£¬°²×¿ÊÖ»úÓû§»¹Ðèʵʱ¸üйٷ½ÍÆË͵IJ¹¶¡ £¬£¬£¬½«Çå¾²Òþ»¼½µµÍµ½×îµÍ¡£ ¡£¡£¡£

 

5¡¢Ïà¹ØÁ´½Ó

 

[1] https://android.googlesource.com/platform/system/bt/+/b66fc16410ff96e9119f8eb282e67960e79075c8%5E%21/#F0

[2] https://android.googlesource.com/platform/system/bt/+/ae94a4c333417a1829030c4d87a58ab7f1401308%5E%21/#F0

[3] https://blog.quarkslab.com/a-story-about-three-bluetooth-vulnerabilities-in-android.html