¡¾Ô­´´Â©¶´¡¿LinuxÄÚºËMarvell WI-FIоƬÇý¶¯Â©¶´£¨CVE-2019-3846/CVE-2019-10126£©

Ðû²¼Ê±¼ä 2019-06-10

©¶´¸ÅÊö



Marvell Avastar802.11acµÍ¹¦ºÄÎÞÏßоƬϵÁÐÖ÷ÒªÓ¦ÓÃÓÚÌõ¼Ç±¾µçÄÔ¡¢ÖÇÄÜÊÖ»ú¡¢ÓÎÏ·É豸¡¢Â·ÓÉÆ÷ºÍÎïÁªÍøÉ豸µÈ£¬ÈçSurface Pro¡¢Surface laptop¡¢Samsung Chromebook¡¢Galaxy J1¡¢Sony PlayStation 4¡¢Xbox One¡£


LinuxÄÚºËMarvell AvastarϵÁÐоƬ£¨88W8766/88W8797/88W8897/88W8997£©Çý¶¯´æÔÚÔ¶³ÌÒç³ö©¶´CVE-2019-3846ºÍµ±µØÒç³ö©¶´CVE-2019-10126£¬¿Éµ¼Ö¾ܾø·þÎñ£¨ÏµÍ³Í߽⣩»òÈÎÒâ´úÂëÖ´ÐУ¬¶«É­Æ½Ì¨ADLabÒѵÚһʱ¼äÌá½»³§É̽øÐÐÐÞ¸´¡£


©¶´Ó°Ï췶Χ



Linux kernel 3.2~Linux kernel 5.1


©¶´·ÖÎö



ÐÅÏ¢ÔªËØ£¨Information Element£¬IE£©ÊÇIEEE 802.11¹ÜÀíÖ¡µÄ×é³É²¿ÃÅ¡£APºÍSTAͨ¹ýIE½»»»ÐŵÀ£¬ËÙÂÊÒÔ¼°¼ÓÃÜËã·¨µÈÐÅÏ¢¡£³ýVendor SpecificÍ⣬ÆäËûIE¾ùʹÓÃTLVÊý¾Ý½á¹¹ÌåÏÖ¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


ÆäÖУ¬Type×ֶ㤶ÈΪ1¸ö×Ö½Ú£¬³£¼ûµÄIEÀàÐÍÒÔ¼°È¡ÖµÈçÏ£º

¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


CVE-2019-3846Ô¶³Ì¶ÑÒç³ö©¶´


¸Ã©¶´Î»ÓÚdrivers/net/wireless/marvell/mwifiex/scan.cÖеÄmwifiex_update_bss_desc_with_ieº¯ÊýÖС£²¹¶¡´úÂëÌí¼Ó¶ÔWLAN_EID_SSIDºÍWLAN_EID_SUPP_RATESµÄ³¤¶ÈУÑé¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


©¶´´¥·¢µÄº¯Êýµ÷ÓÃÁ´£º


->mwifiex_cfg80211_connect [mwifiex]
->mwifiex_cfg80211_assoc [mwifiex]
->mwifiex_bss_start [mwifiex]
->mwifiex_fill_new_bss_desc [mwifiex]

->mwifiex_update_bss_desc_with_ie [mwifiex]


¿ÉÒÔ¿´³ö£¬Â©¶´·¢ÉúÔÚAssociation½×¶Î£¬ÎÞÐè¾­¹ýËÄ´ÎÎÕÊÖÈÏÖ¤¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


¹¥»÷ÕßÎÞÐèÕæʵAPÃÜÂ룬ֻÐèʹvictim STA¶Ï¿ªÔ­ÓÐÁ¬½Ó£¬ÊµÑéÁ¬½ÓFakeAPʱ£¬¼´¿É´¥·¢¸Ã©¶´¡£

¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


CVE-2019-10126µ±µØ¶ÑÒç³ö©¶´


¸Ã©¶´Î»ÓÚdrivers/net/wireless/marvell/mwifiex/ie.cÖеÄmwifiex_uap_parse_tail_iesº¯Êý£¬¸Ãº¯ÊýÓÃÓÚ½âÎöÓû§²ãͨ±¨µÄbeaconÊý¾Ý²¢½«Æäͨ±¨¸ø¹Ì¼þ¡£ÔÚwhileÑ­»·µÄswitch default·ÖÖ§ÖУ¬µ±´¦ÖÃWLAN_EID_SSIDºÍWLAN_EID_SUPP_RATESµÈÖ®ÍâµÄÐÅÏ¢ÔªËØIE£¬Ôò»áµ÷Óÿ½±´º¯Êý¡£²¹¶¡ÔÚ¿½±´º¯ÊýÇ°Ìí¼ÓÁ˶ÔTLVµÄ³¤¶ÈУÑé´úÂë¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


Óû§Ì¬Ó¦Ó÷¨Ê½£¨Èçwpa_suppliant,hostapd£©Í¨¹ýnetlink½Ó¿ÚÓëÄÚºËÄ£¿é½øÐÐͨÐÅ¡£ÔÚ³õʼ»¯¹ý³ÌÖÐ×¢²áÏûÏ¢ÃüÁîºÍ»Øµ÷º¯Êý¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


ÄÚºËÊÕµ½NL80211_CMD_START_APÏûϢʱ£¬º¯Êýµ÷ÓÃÁ´£º


->nl80211_start_ap [cfg80211]
->rdev_start_ap [cfg80211]
->mwifiex_cfg80211_start_ap  [mwifiex]
->mwifiex_set_mgmt_ies [mwifiex]

->mwifiex_uap_parse_tail_ies [mwifiex]


Èç¹û½á¹¹ÌØÊâµÄbeaconÊý¾Ý°üÂÞ¶à¸öÌØÊâÀàÐ͵ÄIE£¨ÀýÈçWLAN_EID_SUPPORTED_OPERATING_CLASSES£©£¬½«Ê¹µÃmwifiex_uap_parse_tail_iesÑ­»·µ÷ÓÃmemcpy£¬µ¼Öµ±µØÒç³ö¡£


Äþ¾²½¨Òé



Linux¸÷¿¯Ðа橶´Í¨¸æ£º


https://security-tracker.debian.org/tracker/CVE-2019-3846
https://access.redhat.com/security/cve/cve-2019-3846

https://security-tracker.debian.org/tracker/CVE-2019-10126


²¹¶¡Á´½Ó£º


https://patchwork.kernel.org/patch/10967049/
https://patchwork.kernel.org/patch/10970141/