IPBUF安全漏洞报告
English
CVE-2026-43347 CVSS 7.5 高危

CVE-2026-43347 Linux内核Monaco平台内存预留拒绝服务漏洞

披露日期: 2026-05-08
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-43347
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

拒绝服务Linux内核ARM64Qualcomm内存管理DoS

漏洞概述

Linux内核在Qualcomm Monaco平台的arm64设备树源码(DTS)中存在内存预留缺陷。该漏洞源于固件提供的EFI内存映射未正确保留Gunyah hypervisor拥有的完整元数据区域,导致Linux内核将hypervisor拥有的内存误判为常规内存并进行分配。当内核尝试访问这些地址时,会触发同步外部异常(ESR=0x96000010),进而导致内核崩溃。该漏洞无需用户交互即可利用,严重影响了系统的高可用性。

技术细节

该漏洞的核心在于Linux内核设备树与Qualcomm Gunyah hypervisor内存描述的不一致。在Monaco平台上,hypervisor声明拥有0x91a80000起始、大小为0x80000(512 KiB)的内存区域。然而,EFI内存映射仅保留了0x91a40000至0x91a87fff(288 KiB),剩余部分(0x91a88000至0x91afffff)被错误标记为常规内存。因此,Linux内核内存分配器可能会分配位于hypervisor区域内的物理页帧号(PFN)。当内核访问这些地址时,由于未正确映射且权限冲突,会触发“同步外部异常”导致系统崩溃。修复方案是在设备树中添加reserved-memory carveout并标记为no-map。

攻击链分析

STEP 1
系统启动
设备启动,固件加载EFI内存映射,错误地将hypervisor拥有的部分内存区域标记为常规可用内存。
STEP 2
内核初始化
Linux内核根据错误的EFI映射初始化内存管理器,未预留0x91a88000-0x91afffff区域。
STEP 3
内存分配
系统运行过程中,内存分配器将位于hypervisor区域内的物理页(PFN)分配给内核或用户空间进程。
STEP 4
触发异常
内核或进程尝试访问分配到的内存地址,触发同步外部异常(Synchronous External Abort),导致系统崩溃(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC / Fix Demonstration for CVE-2026-43347 * This snippet demonstrates the required Device Tree Source (DTS) entry * that was missing, causing the kernel to crash. */ reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; /* * Gunyah hypervisor metadata region * Address: 0x91a80000 * Size: 0x80000 (512 KiB) * no-map: Prevent Linux from mapping or allocating this memory */ gunyah_mem: gunyah-mem@91a80000 { reg = <0x0 0x91a80000 0x0 0x80000>; no-map; }; };

影响范围

Linux Kernel (Monaco platform specific)

防御指南

临时缓解措施
建议立即更新受影响设备的Linux内核版本,确保内核设备树中包含针对Gunyah hypervisor元数据区域的no-map保留条目,防止内核分配该内存区域。

参考链接