查看原文
其他

【原创漏洞】Linux内核Marvell WI-FI芯片驱动漏洞预警(CVE-2019-3846/CVE-2019-10126)

启明星辰 ADLab 2022-12-11

更多资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)



漏洞概述

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/






启明星辰积极防御实验室(ADLab)





ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截止目前,ADLab已通过CVE累计发布安全漏洞1000余个,通过 CNVD/CNNVD累计发布安全漏洞500余个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。








您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存