查看原文
其他

Linux 被曝存在6年的严重 Realtek WiFi 0day,可使系统遭完全攻陷:或值2.5万美元

综合编译 代码卫士 2022-05-23
 聚焦源代码安全,网罗国内外最新资讯!
编译:奇安信代码卫士团队
美国当地时间2019年10月17日,GitHub 首席安全工程师 Nico Waisman 发现了一个严重的 Linux 0day 漏洞 (CVE-2019-17666)。他指出,附近设备可使用 WiFi 信号使易受攻击的机器崩溃或遭完全攻陷。虽然 Linux 开发团队正在修订补丁,但尚未集成到 Linux 内核中。
虽然美国国家漏洞库尚未发布 CVSS 评分,不过VulDB 网站对该漏洞的CVSS v3 评分为5.5分,并给出当前利用代码的价格范围是5000到2.5万美元(https://vuldb.com/?id.143835)。


漏洞详情


该漏洞的编号是 CVE-2019-17666,存在于允许 Linux 设备中某些 Realtek WiFi 模块和 Linux 操作系统进行通信的软件组件 rtlwifi 驱动中。
具体而言:
CVE 网站指出,5.3.6 版本及之前版本的  Linux 内核中的文件drivers/net/wireless/realtek/rtlwifi/ps.crtl_p2p_noa_ie 函数缺乏上边界检查,导致缓冲区溢出后果。CWE 将其归类于 CWE-119,说明它会对机密性、完整性和可用性产生影响。
rtlwifi 驱动易遭缓冲区溢出攻击,即一个缓冲区被分配到内存的堆分区。这些溢出的数据会损坏附近空间且能够修改其它数据,从而为恶意攻击打开方便之门。该缺陷可使攻击者发动一系列攻击,从崩溃易受攻击的 Linux 机器到完全控制机器等等不一而足。
Found this bug on Monday. An overflow on the linux rtlwifi driver on P2P (Wifi-Direct), while parsing Notice of Absence frames.
The bug has been around for at least 4 years https://t.co/rigXOEId29 pic.twitter.com/vlVwHbUNmf
— Nico Waisman (@nicowaisman) October 17, 2019

Nico Waisman 在推特上发布了自己的研究成果,并表示,“这个 bug 较为严重。如果目前使用的是 Realtek 驱动(rtlwifi),那么就易遭攻击,某人就能够在某个无线距离范围内实施攻击。

当受影响设备位于恶意设备的无线范围内时,就可触发该漏洞。只要 WiFi 是打开的,那么就无需终端用户进行任何交互。恶意设备通过使用内置到 WiFi Direct 标准(允许两台设备在无需访问接入点的情况下通过 WiFi 连接)中的节电功能“Notice of Absence协议”利用该漏洞该漏洞存在于驱动处理 Notice of Absence 数据包的方式中:它不检查兼容长度的某些数据包,因此攻击者能够增加特定的信息元素,导致系统遭崩溃。

Waisman 指出,攻击者需要发送“恶意”数据包才能触发该漏洞。如果攻击者位于易受攻击设备的无线电范围内则可完成触发,且攻击者无需完成任何身份验证。
他还指出,攻击者能够利用该漏洞触发多种攻击,“该漏洞触发溢出,也就是说可导致 Linux 崩溃,或者如果编写了正确的利用代码(不容易实现),那么攻击者就能够实现远程代码执行。


受影响版本


该漏洞仅影响在启用 WiFi 条件下使用了 Realtek 芯片的 Linux 设备。如果WiFi 关闭或该设备使用了其它厂商的WiFi 芯片则无法触发该漏洞。从如下链接文章中可知,该漏洞似乎也影响启用了 Realtek Wifi 芯片的安卓设备。
https://android.googlesource.com/kernel/tegra/+/refs/tags/android-8.1.0_r0.135/drivers/net/wireless/rtlwifi/ps.c#750
https://t.co/SXhzEGeA5M

该漏洞可追溯至2013年发布的 Linux 内核版本 3.10.1。该漏洞已存在6年之久。

Linux 内核操作系统 5.3.6 及之前版本均受影响。

PoC 代码


Wisman 表示,目前尚未编写出利用该漏洞的 PoC 代码。
他指出,“我仍然在着手开发利用代码,这确实要花一些时间(当然,有可能没法编写)。从理论上来讲它是一个应该可以遭利用的溢出漏洞。在最糟糕的情况下,它可导致拒绝服务;在最好的情况下,你得到的是 shell。
虽然该漏洞的利用方式尚不明确,但触发某无线范围内的代码执行攻击可带来严重后果。

补丁

Linux 内核团队已开发出正在修订过程中的补丁,见如下链接:

https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2132949.html


diff --git a/drivers/net/wireless/realtek/rtlwifi/ps.c b/drivers/net/wireless/realtek/rtlwifi/ps.cindex 70f04c2f5b17..fff8dda14023 100644--- a/drivers/net/wireless/realtek/rtlwifi/ps.c+++ b/drivers/net/wireless/realtek/rtlwifi/ps.c@@ -754,6 +754,9 @@ static void rtl_p2p_noa_ie(struct ieee80211_hw *hw, void *data, return; } else { noa_num = (noa_len - 2) / 13;+ if (noa_num > P2P_MAX_NOA_NUM)+ noa_num = P2P_MAX_NOA_NUM;+ } noa_index = ie[3]; if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==@@ -848,6 +851,9 @@ static void rtl_p2p_action_ie(struct ieee80211_hw *hw, void *data, return; } else { noa_num = (noa_len - 2) / 13;+ if (noa_num > P2P_MAX_NOA_NUM)+ noa_num = P2P_MAX_NOA_NUM;+ } noa_index = ie[3]; if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode ==-- 2.21.0

 Linux 内核团队可能会在未来几天或几周的时间内集成到 Linux 操作系统中。之后才能够将修复方案推到多种 Linux 发行版本中。

Realtek 公司和谷歌尚未就该漏洞置评。

 


推荐阅读

Linux Sudo 被曝漏洞,可导致用户以 root 权限运行命令



原文链接
https://threatpost.com/critical-linux-wi-fi-bug-system-compromise/149325/
https://arstechnica.com/information-technology/2019/10/unpatched-linux-flaw-may-let-attackers-crash-or-compromise-nearby-devices/?comments=1
https://vuldb.com/?id.143835
https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2132949.html




题图:Pixabay License




本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”



奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。



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

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