IPBUF安全漏洞报告
English
CVE-2026-31694 CVSS 7.8 高危

Linux内核FUSE dirents缓存溢出漏洞

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

漏洞信息

漏洞编号
CVE-2026-31694
漏洞类型
缓冲区溢出
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

缓冲区溢出Linux内核FUSE权限提升本地漏洞

漏洞概述

Linux内核FUSE模块在处理readdir缓存时存在缓冲区溢出漏洞。`fuse_add_dirent_to_cache`函数未正确校验服务器返回的目录项大小,导致攻击者可通过恶意FUSE服务器构造超长namelen值,引发内核页缓存溢出,进而造成本地权限提升或拒绝服务。

技术细节

该漏洞位于Linux内核FUSE子系统的目录项缓存处理逻辑中。当用户空间进程对挂载的FUSE文件系统执行`readdir`操作时,内核会调用`fuse_add_dirent_to_cache`函数,将用户空间FUSE服务器返回的目录项数据序列化并缓存到内核页缓存中。现有的安全检查逻辑仅关注目录项是否适合当前页面的剩余空间,并在空间不足时分配新页面,但严重缺失了对目录项本身总长度是否超过单页大小(PAGE_SIZE)的校验。攻击者可利用这一缺陷,通过恶意的FUSE服务器返回一个`namelen`字段为4095的超长目录项。结合文件头等信息,该目录项序列化后的总长度将达到4120字节。在标准的4KiB页面系统中,执行`memcpy`操作时,由于目标页面仅剩4096字节空间,将导致24字节的数据溢出写入到相邻的下一个内核页面中。这是一种典型的内核堆越界写漏洞,攻击者可以通过精心构造内存布局,覆盖关键的内核数据结构或函数指针,从而破坏内存完整性,实现本地权限提升或导致系统内核崩溃。

攻击链分析

STEP 1
步骤1:环境准备
攻击者编写并部署一个恶意的FUSE服务器,该服务器被配置为在响应readdir请求时返回特定的超大目录项。
STEP 2
步骤2:诱导挂载
攻击者诱导具有低权限的受害者用户挂载该恶意FUSE文件系统。
STEP 3
步骤3:触发漏洞
受害者或系统进程在挂载点执行目录读取操作(如`ls`命令),内核调用`fuse_add_dirent_to_cache`处理数据。
STEP 4
步骤4:内存破坏
由于缺少长度检查,内核执行memcpy导致24字节的堆越界写入,覆盖相邻内核页面。
STEP 5
步骤5:利用与提权
攻击者利用溢出覆盖的内存对象(如函数指针或结构体),劫持内核执行流,从而获得root权限或导致系统崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import os import stat from fuse import FUSE, FuseOSError, Operations class MaliciousFuse(Operations): def getattr(self, path, fh=None): return {'st_mode': (stat.S_IFDIR | 0o755), 'st_nlink': 2} def readdir(self, path, fh): # Standard entries yield '.' yield '..' # Trigger the vulnerability by returning a large name # Description: namelen=4095 causes overflow of 24 bytes # This simulates the malicious server response yield 'A' * 4095 if __name__ == '__main__': mount_point = './malicious_fuse' if not os.path.exists(mount_point): os.makedirs(mount_point) # Mount the file system to trigger the vulnerability on client side FUSE(MaliciousFuse(), mount_point, foreground=True)

影响范围

Linux Kernel (修复前的多个版本)

防御指南

临时缓解措施
建议立即更新内核补丁。在无法立即更新内核的情况下,可以通过系统配置(如`/etc/fuse.conf`)限制非特权用户使用FUSE,或在用户命名空间中隔离不可信的FUSE挂载操作,以降低潜在风险。

参考链接

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