更新
* 2024 年 5 月 17 日:我们披露了另外两个联发科漏洞:CVE-2024-20003(高危)和 CVE-2024-20004(中危)。更多详细信息请参阅第 7.11和7.12节。
* 2023 年 12 月 29 日:经过联发科的额外严重性评估审查,三个漏洞的严重性等级已从“中等”提升至“高”。(CVE-2023-32842、CVE-2023-32841 和 CVE-2023-32843)。
* 2023 年 12 月 15 日:我们估计受影响智能手机的研究考虑了采用易受攻击的 5G 调制解调器的手机型号。但是,某些手机可能无法启用 5G 功能。我们进行了进一步分析,以估计同时提供 5G 功能的智能手机数量,并修改了研究结果(见第 4节)。
* 2023 年 12 月 7 日:截至今日,我们共披露了 14 个漏洞(10 个 CVE),其中 10 个影响采用 Qualcomm和MediaTek 5G 调制解调器的商用现货 (COTS) 边缘设备。由于保密性,至少还有两个漏洞尚未披露。随着我们的实验进展和禁令解除,此页面将继续更新。有关每个披露漏洞的更多详细信息,请参阅第 7节。欢迎通过 [email protected]与我们联系。
* 2023 年 12 月 4 日:在负责任的披露期之后,联发科 12 月安全公告包含所有受 5Ghoul 漏洞 影响的联发科芯片组的详细信息 [ 10 ] 。同样,所有受5Ghoul漏洞影响的高通芯片组 均在高通 12 月安全公告中详细说明 [ 13 ]。
概括
在本漏洞披露报告中,我们讨论了 5Ghoul 系列实施级 5G 漏洞的详细信息。此类漏洞系列存在于主要芯片组供应商(如高通和联发科)的 5G 移动网络调制解调器的固件实施中。因此,许多支持 5G 的商业产品(如智能手机、客户端设备 (CPE) 路由器和 USB 调制解调器)都可能因在这些产品中使用存在漏洞的 5G 调制解调器而受到影响。总共,我们发现了 12 个 新漏洞(共 14 个),其中 10 个影响 高通和联发科的 5G 调制解调器。更重要的是, 这十个漏洞中有六个被确认具有高严重性。我们还编写了一个抓取工具,将精心设计的查询发送到 https://www.kimovil.com/en/,并估计受这些漏洞影响的智能手机型号数量。我们发现目前市场上有超过 710 种智能手机型号 采用了存在漏洞的调制解调器。进一步考虑这些采用 易受攻击的芯片组的手机的 5G 功能 ,我们发现有超过626 款手机型号 受到 影响。我们强调,受影响型号的实际数量可能更多,因为固件代码通常在不同的调制解调器版本之间共享。在本披露报告中,我们还 展示了如何利用 5Ghoul 漏洞断开和冻结智能手机和 CPE路由器上的 5G 连接。我们还展示了跨多部智能手机的降级攻击,导致 5G 连接降级为4G。
1 介绍
图 1:合法(即良性)gNB 和 UE(例如 5G 智能手机)之间的 5G 独立 (SA) 连接过程说明。
为什么是5Ghoul ?
代号5Ghoul 是两个词的组合:(i) 5G 和(ii) Ghoul。虽然我们的工作与 5G 的联系很明显,但Ghoul这个词源自阿拉伯神话 ( https://www.britannica.com/topic/ghoul )。在民间传说中, Ghoul是一种像恶魔一样的生物,它试图分散旅行者的注意力,一旦成功分散了旅行者的注意力,恶魔就会捕食他们。同样,5Ghoul 漏洞在被利用时会试图分散 UE(即智能手机和其他支持 5G 的设备)的注意力,使其连接到5Ghoul 创建的恶意基站 (gNB)。一旦连接,5Ghoul 漏洞可能会被利用来持续发起攻击,以断开连接、冻结需要手动重启的连接或将 5G 连接降级为 4G。
2 攻击场景概述
图 2:5Ghoul攻击过程概述 。一旦目标连接到恶意基站 (gNB),攻击者只需启动漏洞利用脚本,如命令提示符中所示,其中包含移动国家代码 ( MCC ) 和移动网络代码 ( MNC )。
3 易受攻击的 5G 调制解调器和产品
在本节中,我们提供了发现的漏洞和易受攻击的设备的一些显著特征。
漏洞摘要:表1列出了我们评估中使用的易受攻击的目标及其相应的固件版本 。此外,表 2列出了 5G 设备上的所有 5Ghoul漏洞。在第一列中,每个漏洞名称都以前缀V 标识。虽然前两个漏洞(V1和V2 )影响来自OpenAirInterface项目 [ 11 ]的开源 UE 实现,但其余漏洞在许多流行的 5G USB 调制解调器(V3-V7)或采用 高通或联发科调制解调器的代表性智能手机(V5-V14)上进行了测试。
表 1:用于评估5Ghoul 漏洞的设备和监控。固件/软件由供应商提供或通过操作系统更新提供。OpenAirInterface UE是一种软件解决方案,不使用 5G 调制解调器 (NA)。
表 2:5G 实施漏洞及受影响软件或产品的摘要。
4 5Ghoul-漏洞利用
我们利用5Ghoul漏洞创建了不同的具体攻击 。接下来,我们将讨论导致受影响目标设备上出现拒绝服务 (DoS) 或连接降级的攻击。
4.1 移动设备上的漏洞利用
图 3:图示V5 – “无效的 MAC/RLC PDU”
图 4:图示V7 – “RRC 无效 pdcch-Config”
视频 1:插图V7 – “RRC 无效 pdcch-Config”
4.2 5G专用产品的开发
我们注意到漏洞V5 – V14(表 2)会影响采用高通和联发科调制解调器的 5G 设备。因此,V5 – V14 不仅会影响智能手机和 USB 调制解调器,还会影响依赖低延迟通信的设备。
图 5:利用V5、V6 对 作为 CPE 路由器运行的Telit FT980m的影响 (设置 A)
视频 2:Telit CPE 路由器上的“NAS 未知 PDU”漏洞演示 (CVE-2023-33043)。Youtube 视频网址:https://youtu.be/_g4P7iSuFNk
在设置 B (如图6所示 )中,使用了搭载OpenWRT 22.03.4 [ 12 ]的 Raspberry Pi 3B+ 和RM500Q-GL 5G USB 调制解调器(见表 1 )。此设置可以更好地隔离利用V5和V6的攻击,因为配置网页由Raspberry Pi 3B+处理器 托管,而不是调制解调器本身。这允许用户通过选择要连接的其他移动网络来远程尝试操纵 CPE 设备。
图 6:利用V5、V6 对 作为 CPE 路由器运行的RM500Q-GL调制解调器的影响 (设置 B)
4.3 降级攻击
5Ghoul 揭示了一组以前未知的导致拒绝服务(即崩溃或挂起)的实施漏洞,而我们展示了 5Ghoul利用 工具执行降级攻击的能力。这类漏洞对调制解调器的影响是独一无二的。这是因为降级攻击通常会导致用户的连接强制更改,特别是从较新的网络技术(例如 5G NR)更改为较旧的网络技术(例如 LTE 或以下)。因此,降级攻击可能会使用户面临网络技术(例如 2G、3G 和 4G)固有的一组不同的设计或实施问题。在这种情况下,漏洞 V7( 7.3)被理解为降级攻击,因为利用它会导致受影响的设备无法连接到任何 5G 网络,但仍然可以连接到 4G 等较旧的网络技术。
图7:通过NAS泛洪降级。
视频 3:通过 NAS 洪泛进行降级攻击的演示视频(见图 7)。Youtube 视频网址:https://youtu.be/84DDy_4ofxw
视频3 展示了触发新降级攻击的 5Ghoul漏洞利用工具 的演示。总之,攻击者可以使用第 2节中讨论的相同设置。执行此攻击需要合法的 5G 和 4G 基站(分别为gNB和eNB)。为此,我们总共设置了三个 SDR。两个用于模拟合法基站,另一个用于模拟目标 UE(OnePlus Nord CE 2 5G)无线电范围内的攻击者。
4.4 估算5Ghoul的覆盖范围
为了估计受5Ghoul影响的 5G 智能手机的潜在数量 ,我们搜索了所有采用高通和联发科易受攻击的 5G 调制解调器的智能手机的型号。值得注意的是,我们依靠网络抓取来自动查找与特定处理器芯片组匹配的手机型号。这是因为移动处理器供应商通常会向智能手机供应商提供已经集成了 CPU、5G 调制解调器、GPU 以及其他外围设备的芯片组平台。例如,采用高通处理器的智能手机包含骁龙 8XX 移动平台,而基于联发科的 5G 手机包含Dimensity XXXX 芯片组。
图 8:可能受5Ghoul影响的智能手机型号分布。数据基于高通和联发科安全披露 [ 13 , 10 ] 和 Kimovil 智能手机列表。
最后,值得一提的是, 5Ghoul 漏洞的影响范围不仅限于智能手机。这是因为受影响的 5G 调制解调器也用于其他支持 5G 的应用中。事实上,正如 Qualcomm 安全公告 [ 13 ]中所述,5Ghoul 漏洞可能会影响工业物联网解决方案,例如“315 5G IoT”,以及其他平台,例如用于各种应用(包括家用电器、IP 摄像头等)的“ AR8035 ”。
4.5 向最终用户提供 5G 补丁的挑战
图9:5G UE软件供应生态系统
确保调制解调器软件开发工具包 (SDK) 在向下游发布之前经过充分测试且没有严重漏洞至关重要。否则,攻击者可能会在较长时间内利用调制解调器故障,而最终用户还未真正获取相关安全更新。
5 模糊测试工具和漏洞脚本
5Ghoul概念验证 (PoC) 和模糊测试工具可在 我们的 github 存储库中开源获取:
https://github.com/asset-group/5ghoul-5g-nr-attacks
图 10:5Ghoul PoC 测试和模糊器评估的硬件设置。
6 反射
在本节中,我们概述了过去几年中面临的一些关键挑战,特别是在 COTS 5G 设备的自动化安全测试方面。我们还讨论了我们在披露过程中的个人经历,这些经历揭示了下游补丁传播的复杂性和时间表。
崩溃识别:由于我们的重点是测试 COTS 设备,因此我们在准确识别设备崩溃方面面临巨大挑战。特别是,由于我们的对抗性测试的性质(例如,传输格式错误的数据包),目标 5G UE 可能会面临任意连接超时。这种连接超时是正常的,不应与崩溃(即拒绝服务)混淆。我们最初的研究涉及查看许多消息日志并尝试识别可能可靠地指示崩溃的消息。事实上,在我们研究的早期阶段,我们有几个消息日志被怀疑有崩溃,但后来被排除为正常的连接超时。
分类调试支持:由于 5G UE 堆栈的封闭性,我们几乎无法对崩溃进行分类。即使在我们确认并向供应商报告漏洞之后,情况也是如此。虽然消息日志和 Wireshark 捕获可以显示修改后的数据包和崩溃指示,但仍需要付出巨大努力才能在固件代码中找到崩溃。在我们的披露期间,其中一家供应商 ( Telit ) 帮助提供了更好的调试日志记录工具。具体来说,这样的工具会生成一份全面的 HTML 报告,其中包含核心转储和回溯摘要,包括高通采取行动所需的其他一些信息。特别是,可以为高通的漏洞 V5和V6(参见第 7节)生成此类报告,这两个漏洞都导致固件崩溃(可到达断言)。但是,对于导致挂起的漏洞V7,情况并非如此。因此,无法生成回溯报告来加速 V7的分类工作。
下游修补时间:在图 9中,我们说明了典型的 5G UE 软件供应链。根据图 9所示的生态系统,我们分享了 5G 调制解调器补丁可供最终用户(例如智能手机用户)使用所需的时间经验。我们于2023 年 4 月 17 日向 Telit(USB 调制解调器供应商)报告了第一个漏洞(即表 2中的V5和V6) 。Telit友好地提供了一个日志记录工具,该工具又生成了一份包含核心转储和回溯摘要的综合 HTML 报告。这样的摘要清楚地表明,崩溃/漏洞的根本原因在于高通固件代码,从而抓住了 Telit 制作补丁的可能性。这也证实了使用相同高通 5G 调制解调器的其他产品(例如智能手机)也会受到类似的影响。在2023 年4 月 21 日向高通发送综合报告后,崩溃分类于2023 年 5 月 9 日完成。最终,高通于2023 年 8 月向其客户内部提供了针对这些漏洞的补丁。最后,预计 Android 补丁将于 2023 年 12 月向(智能手机)最终用户提供,以修复我们报告的漏洞。
总之, 自供应商复制补丁以来,大约花了七 (7) 个月的时间才将补丁提供给最终用户 ,自发现补丁以来大约花了八 (8) 个月的时间。 这表明了在 5G UE 软件供应链中将补丁传播给最终用户的复杂性。对于没有任何附带崩溃报告的漏洞,例如V7(参见图 13 ),分类所需的时间稍长(由于没有任何崩溃报告,这是意料之中的):我们于2023 年 5 月 11 日报告 ,分类于2023 年6 月 13 日 完成。
大规模测试的软件 / 硬件支持:我们的方法涉及从恶意基站向 COTS 5G UE 发送畸形数据包。这也需要任意多次自动执行,以发现调制解调器固件中根深蒂固的漏洞。在我们研究的早期阶段,我们面临着重大的技术挑战,即简单地保持开源基站(即 OpenAirInterface [ 11 ])和 COTS 5G UE(例如商用智能手机)之间的稳定无线连接。这反过来又导致通过无线模糊测试获得实际结果的重大障碍。此外,由于模糊测试的性质,我们发现 USB 5G 调制解调器经常变得不稳定,这反过来又使得模糊测试难以进行。为了解决这个问题,我们添加了一个 USB 电源开关来自动重启 USB 调制解调器。对于 Android 智能手机,可以通过 Android 调试桥 (ADB) 发送重启命令来实现类似的重启机制。
7 漏洞描述
在本节中,我们详细描述了每个漏洞、攻击媒介、受影响的 5G 调制解调器芯片组和/或固件版本(如适用)。我们仅包括发现时未知的实施漏洞(即表 2中的V5 – V14)。一些漏洞是在测试调制解调器时发现的,而其他漏洞则是在测试智能手机时检测到的。
7.1 V5:无效的 MAC/RLC PDU
(CVE-2023-33043)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 MAC 帧,在Qualcomm 的 X55/X60调制解调器固件中触发拒绝服务(可达断言) 。RRC连接程序完成后,攻击者(恶意 gNB)发送格式错误的RLC 状态 PDU,将下行链路传输块的 MAC 头(第一个字节)从 0x41(DL-SCH)更改为0xB5 (MAC TCI 状态激活/停用) 。我们在图11中用红色突出显示此字节 。在无效帧发送到 5G UE 后,Qualcomm X55 调制解调器出现故障并重新启动,在核心转储日志(QCAP)中指示固件断言。更具体地说,调制解调器会暂时挂起并在5 到 10 秒内重新启动。在使用此类调制解调器的产品中,这种延迟是显而易见的。例如,由于以下固件核心转储消息,Telit FT980-WW 基于 Web 的应用程序仅在平台重新启动后才可访问:
[ASSERT] nr5g_ml1_mdb.c:12636 Assert serving_cell_ptr->cell_data.nr5g.configured_bwp_bmask & (1< <bwp_idx) failed: gNB beam update for BWP not configured 0x1
影响:在基于 X55/X60 调制解调器的 UE 无线电范围内的攻击者可以通过连续发送 无效数据包来阻止 3GPP 调制解调器连接。此外图 10:5Ghoul PoC 测试和模糊器评估的硬件设置。
图 11:无效的 MAC/RLC PDU。
7.2 V6:NAS 未知 PDU
(CVE-2023-33044)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(智能手机、CPE 路由器)发送无效的下行链路 MAC 帧, 在Qualcomm 的 X55/X60调制解调器固件中触发拒绝服务(可达断言) 。在RRC 连接程序完成后,在 NAS 网络注册完成之前,攻击者(恶意 gNB)发送无效的 NAS PDU,将RRC dlInformationTransfer的第三个字节从0xC0(NAS 身份验证请求)更改为0xF4(NAS 未知PDU)(参见图 12中以红色突出显示的此字节)。在无效帧发送到 5G UE 后,Qualcomm X55/X60 调制解调器出现故障并重新启动,在核心转储日志(QCAP)中指示固件断言。更具体地说,调制解调器会暂时挂起并在5 到 10 秒内重新启动。这种延迟在应用程序中是显而易见的。例如,由于以下固件核心转储消息,Telit FT980-WW 基于 Web 的应用程序仅在平台重新启动后才可访问:
[ASSERT] ds_3gpp_tlb_ctrl.c:2088 Assertion msg_size == 1 failed
影响:X55/X60 UE 无线电范围内的攻击者可以通过连续发送无效数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效下行链路帧是在 NAS 注册过程的 早期发送的,该过程发生在任何 NAS 身份验证过程完成之前。
图 12:NAS 未知 PDU。
7.3 V7:通过无效的 RRC pdcch-Config 禁用 5G/降级
(CVE-2023-33042)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(智能手机、CPE 路由器)发送格式错误的 RRC 帧,触发Qualcomm 的 X55/X60调制解调器固件中的 5G 连接降级或拒绝服务。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的 NAS PDU,将RRC dlInformationTransfer有效负载的第 30 个字节从0x04更改为0x9C。这会修改pdcch-Config的可选位,例如tpc-PUCCH和 Sequence-Of Length (请参见图12中以红色突出显示的这些字节 )。将格式错误的消息发送到 5G UE 后,与任何 5G 网络的连接都会失败。例如,USB 调制解调器或 CPE 路由器通常无法通过串行命令AT+COPS=?扫描 5G 网络,因此与任何 gNB(包括合法 gNB)的连接都会失败。此外,尝试连接到任何列出的 5G 网络也无法成功。这种行为已被证实发生在我们所有支持 5G 的 Qualcomm 设备中,例如Asus Rog Phone 5S、Quectel RM500Q-GL等(见表 2)。一旦发起攻击,X55/X60 调制解调器就会受到影响,直到用户重新启动手机。简单地打开和关闭飞行模式并不能恢复 5G 通信。
影响:高通 X55/X60 UE 无线电范围内的攻击者可以通过发送单个 格式错误的数据包来拒绝或降级 5G 连接。用户需要手动重启手机才能恢复 5G 连接。此外,此漏洞相当容易触发,因为发起攻击不需要有关目标 SIM 卡信息的信息。这是因为无效的下行链路帧是在 RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前。
图 13:通过无效的 RRC pdcch-Config 禁用 5G/降级。
7.4 V8:无效的 RRC 设置 spCellConfig
(CVE-2023-32842)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900 / 1200 5G 调制解调器固件中触发拒绝服务(可达断言)。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的 RRC 连接设置,将下行链路传输块的第 35字节从0x4C更改为0xD6,将第 66字节从 0x9A更改为0x71(参见图 14中以红色突出显示的字节)。这对应于更改 RRC 有效载荷中的某些字段,例如spCellConfigDedicated可选位:defaultDownlinkBWP-Id= 1、pdcch-ServingCellConfig= 1、 pdsch-ServingCellConfig= 0、sCellDeactivationTimer= 1。在将这种无效数据包发送到 5G UE 后,Dimensity 900 5G 调制解调器出现故障并重新启动,这表明 Android 日志 (logcat) 中存在固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[ASSERT] file:mcu/l1/mml1/mml1_endc/src/mml1_endc_db_hdlr.c line:524 p1:0x91920c70
影响:攻击者可以通过持续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前。
图 14:无效的 RRC 设置 spCellConfig。
7.5 V9:RRC pucch CSIReportConfig 无效
(CVE-2023-32844)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900/1200 5G 调制解调器固件中触发拒绝服务(可达断言)。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的RRC 连接设置,将下行链路传输块的第 192 个字节从0x0A更改为0xD0 (参见图15中以红色突出显示的此字节 )。这对应于更改 RRC 有效载荷中的某些字段(searchSpacesToAddModList元素),例如将pucch-Resource从0x02更改为0x52,将reportQuantity 从0x05(cri-RSRP)更改为0x01(cri-RI-PMI-CQI)。在将此类无效数据包发送到 5G UE 后,Dimensity 900 5G 调制解调器出现故障并重新启动,这表明 Android 日志 (logcat) 中存在固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[ASSERT] file:mcu/l1/nl1/internal/md97/src/rx/nr_rx_dspcmd_ext_csif_csi.c line:2657 p1:0x00000000
影响:攻击者可以通过持续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前。
图 15:无效的 RRC pucch CSIReportConfig。
7.6 V10:无效的 RLC 数据序列
(CVE-2023-20702)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RLC 有效载荷,在联发科Dimensity 900/1200 5G调制解调器固件中触发拒绝服务(空指针取消引用)。在RRC 连接过程之后,攻击者(恶意 gNB)发送格式错误的RLC状态 PDU ,将下行链路传输块的第 4 个字节从 0x00更改为0x84 (参见图16中以红色突出显示的此字节 )。这对应于将 RLC 标头中的某些字段(例如数据/控制字段更改为0x01 (数据 PDU)和RLC 序列号更改为1025 )更改为。原始下行链路数据包是RLC 控制 PDU(状态 ACK)。但是,在将无效字节0x84写入 RLC Header 后,此类 PDU 会更改为具有错误(无序)RLC 数据序列号的数据 PDU 。将无效的 RLC 有效负载发送到 5G UE 后, Dimensity 900 5G 调制解调器出现故障并重新启动,Android 日志(logcat)中显示固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[Fatal error(MPU_NOT_ALLOW)] err_code1:0x0000001D err_code2:0x910D66F6 err_code3:0x910D66E2
影响:攻击者可以通过持续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效下行链路帧是在 RRC 附加过程之后发送的,而该过程发生在任何 NAS 身份验证过程之前。
图 16:无效的 RLC 数据序列。
7.7 V11:截断的 RRC physicalCellGroupConfig
(CVE-2023-32846)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900/1200 5G 调制解调器固件中触发拒绝服务(空指针取消引用) 。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的RRC 连接设置,将 下行链路传输块的第 14和第 15 个字节从0xBA 0xE0更改为0x13 0x46 (参见图17中以红色突出显示的这些字节 )。这对应于将physicalCellGroupConfig中的某些字段更改为0x01(True)和将 pdsch-HARQ-ACK-Codebook更改为 0x00(半静态)。因此,这会导致 RRC 消息被截断,从而导致编码错误,如 Wireshark 中突出显示的(图 17中的黄色消息)。将这种格式错误的数据包发送到 5G UE 后,Dimensity 900 5G 调制解调器出现故障并重新启动,这表明 Android 日志(logcat)中存在固件内存访问错误。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[Fatal error(MPU_NOT_ALLOW)] err_code1:0x0000001D err_code2:0x90F5D83A err_code3:0x90F5D836
影响:攻击者可以通过持续发送这种格式错误的数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效的下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前 。
图 17:截断的 RRC physicalCellGroupConfig。
7.8 V12:RRC searchSpacesToAddModList 无效
(CVE-2023-32841)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900/1200 5G 调制解调器固件中触发拒绝服务(可达断言)。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的RRC 连接设置,将下行链路传输块的第 52 个字节从0x00更改为0x5B (参见图18中以红色突出显示的此字节 )。这对应于更改 RRC 有效载荷中的某些字段(searchSpacesToAddModList 元素),例如将 surveillanceSymbolsWithinSlots从0x80 0x00更改为0x82 0xd8。在将此类无效数据包发送到 5G UE 后,Dimensity 900 5G 调制解调器出现故障并重新启动,这表明 Android 日志 (logcat) 中存在固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[ASSERT] file:dsp3/coresonic/msonic/modem/slm/nr/nr_post_proc/src/nr_slm_rpt_hndlr.c line:9302
影响:攻击者可以通过持续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前。
图 18:无效的 RRC searchSpacesToAddModList。
7.9 V13:无效的 RRC 上行链路配置元素
(CVE-2023-32843)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900/1200 5G 调制解调器固件中触发拒绝服务(可达断言)。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的RRC 连接设置,将下行链路传输块的第 92 个字节从0x49更改为0x67(参见图 19中以红色突出显示的此字节)。这对应于更改 RRC 有效载荷中的许多字段,例如qcl-Type从 0x02 更改为0x03、resourceAllocation从 0x01 更改为0x00、rbg-size从 0x00 更改为0x01、 prb-BundlingType从 0x00 更改为0x01以及其他uplinkConfig 可选位。在将此类无效数据包发送到 5G UE 后, Dimensity 900 5G 调制解调器出现故障并重新启动,这表明 Android 日志 (logcat) 中存在固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[ASSERT] file:mcu/l1/nl1/internal/md97/src/rfd/nr_rfd_configdatabase.c line:4380 p1:0x00000001
影响:攻击者可以通过持续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前。
图 19:无效的 RRC 上行链路配置元素。
7.10 V14:空 RRC 上行链路配置元素
(CVE-2023-32845)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900/1200 5G 调制解调器固件中触发拒绝服务(可达断言)。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的RRC 连接设置,将下行链路传输块的第 50 个字节从0xA2更改为0xA1 (参见图20中以红色突出显示的此字节 )。这对应于将 RRC 有效负载中的某些字段(例如将controlResourceSetId更改为0x00、将 pdsch-Config 更改为0x00 (释放))以及其他字段(如图 20所示) 。特别是,当pdsch-Config设置为释放时,上行链路配置元素被解码为Null。因此,当将这种无效数据包发送到 5G UE 时,Dimensity 900 5G 调制解调器将发生故障并重新启动,从而指示 Android 日志 (logcat) 中的固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[ASSERT] file:dsp3/coresonic/msonic/modem/brp/nr/nr_brp/src/nr_brp_top_irq.c line:927
影响:攻击者可以通过持续发送此类无效数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前。
图 20:空 RRC 上行链路配置元素。
7.11 V15:无效的 RRC CellGroup ID
(CVE-2024-20003)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900/1200 5G 调制解调器固件中触发拒绝服务(可达断言)。在RRC 连接过程中,攻击者(恶意 gNB)发送格式错误的RRC 连接设置,将下行链路传输块的第 15 个字节从0xE0更改为0xE4 (参见图21中以红色突出显示的此字节 )。这对应于将 RRC 有效负载(CellGroupId 元素)中的某些字段(例如cellGroupId从0x00更改为0x02 ) 。在将这样的无效数据包发送到 5G UE 后,Dimensity 900 5G 调制解调器出现故障并重新启动,从而在 Android 日志(logcat)中指示固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动,logcat 会输出以下固件断言消息:
[ASSERT] file:mcu/l1/nl1/internal/md97/src/ctrl/nr_ctrl_mgm.c line:16460
影响:攻击者可以通过持续发送这种格式错误的数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效的下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前 。
图 21:无效的 RRC CellGroup ID。
7.12 V16:无效的 RRC CellGroupConfig
(CVE-2024-20004)
在无线电范围内的攻击者可以通过从附近的恶意 gNB 向目标 5G UE(例如智能手机)发送无效的下行链路 RRC 帧,在联发科Dimensity 900/1200 5G 调制解调器固件中触发拒绝服务(可达断言)。在RRC 连接过程中,攻击者(恶意 gNB)按特定序列发送一个RRC 连接设置和一个正常RRC 连接设置。下行链路传输块的第 15 个字节从0xE0更改为0xC4 (请参见图22中以红色突出显示的此字节 )。这对应于更改 RRC 有效载荷中的许多字段,例如可选字段位,它指示spCellConfig的存在,从 0x01 更改为0x00,cellGroupId从 0x00 更改为0x02。此类无效数据包发送到 5G UE 后,Dimensity 900 5G 调制解调器出现故障并重新启动,Android 日志 (logcat) 中显示固件崩溃/断言。更具体地说,调制解调器会暂时挂起并在2 到 7 秒内重新启动。由于正常和恶意连接序列的任意组合,logcat 会输出以下两个固件断言消息之一:
[Fatal error(MPU_NOT_ALLOW)] err_code1:0x0000001D err_code2:0x910885CE err_code3:0x910885CA
OR
[Fatal error(MPU_NOT_ALLOW)] err_code1:0x0000001D err_code2:0x910885AC err_code3:0x910885A8
影响:攻击者可以通过持续发送这种格式错误的数据包来阻止 3GPP 调制解调器连接。此外,由于无需有关目标 SIM 卡信息即可发起攻击,因此此漏洞相当容易触发。这是因为无效的下行链路帧是在RRC 附加过程中发送的,该过程发生在任何 NAS 身份验证过程之前 。
图 22:无效的 RRC CellGroupConfig。
致谢
本研究部分由新加坡科技设计大学主办的未来通信计划和iTrust 国家卓越卫星 (NSOE)资助,后者致力于安全关键基础设施 (物联网领域)的设计科学与技术。我们感谢Sakshi Udeshi创造了5Ghoul这一术语 。我们感谢Rushati Chakraborty设计了5Ghoul徽标( Flaticon 的幽灵图标)。我们非常感谢未来通信实验室的Mao Ngo提供的帮助,他好心地借给我们实验室的 5G 智能手机,我们在那里发现了第一个漏洞。最后,我们非常感谢高通和联发科在协调披露过程中的支持,并慷慨地为我们的发现颁发奖励。
5Ghoul : Unleashing Chaos on 5G Edge Devices
https://asset-group.github.io/disclosures/5ghoul/
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里
原文始发于微信公众号(Ots安全):5G NR攻击和5G OTA模糊测试