Github首席安全工程师Nico Waisman在Linux系统中发现一个严重漏洞,攻击者利用该漏洞可以完全入侵有漏洞的设备。目前已经开发出了补丁,但是补丁尚未加入到Linux kernel中。该漏洞CVE编号为CVE-2019-17666,存在于rtlwifi驱动中,是一个用来在Linux设备中允许特定Realtek WiFi模块与Linux操作系统通信的软件组件。
研究人员发现Linux kernel的drivers/net/wireless/realtek/rtlwifi/ps.c的rtl_p2p_noa_ie中缺乏上界检查,易受到缓冲区溢出攻击。当缓冲区分配到内存的堆部分时,就会引发缓冲区溢出。溢出的数据会破坏内存中附件的空间,还可以修改其他数据,为恶意攻击大开后门。这类漏洞可以使攻击者发起不同类型的攻击,包括使有漏洞的Linux设备奔溃和完全接管Linux设备。
该漏洞的危险等级为严重。如果攻击者目前正在使用Realtek driver (rtlwifi),那么在无线距离范围内的有漏洞的设备就可能会被攻击。
有漏洞的rtlwifi驱动部分是一个名为Notice of Absence 协议的特征。该协议可以帮助设备自动休眠来节约能源。该漏洞存在于驱动处理Notice of Absence包的过程中,由于没有堆特定包进行长度检查,所以攻击者可以添加一些可能会引发系统奔溃的信息元素。
Waisman称为了利用该漏洞,攻击者会发送一个恶意包来触发该漏洞。而且要求攻击者和有漏洞的设备处在无线频率范围内,但攻击者无需进行任何形式的认证。
Linux kernel 5.3.6版本会受到该漏洞的影响,研究人员称该漏洞在发现前存在了4年之久。目前,Linux kernel团队开发了一个补丁,但是还没有加入到Linux kernel中。