文章总结: Linux内核FUSE子系统存在本地提权漏洞CVE-2026-31694,攻击者可通过控制目录项溢出页缓存获取root权限。漏洞源于fuseadddirenttocache()函数未校验目录项是否超过单页容量,导致4KiB页系统上可溢出篡改SUID二进制文件。修复方案为拒绝超出单页容量的条目,并建议限制FUSE功能使用范围。 综合评分: 86 文章分类: 漏洞分析,应急响应,威胁情报,恶意软件,安全意识
Linux内核FUSE漏洞
网安百色
2026年7月11日 18:41 广西
在小说阅读器读本章
去阅读
Linux内核FUSE子系统存在本地提权漏洞,攻击者可通过由攻击者控制的目录项溢出页缓存获取root权限。
该漏洞编号为CVE-2026-31694,影响内核缓存FUSE readdir结果时所使用的代码路径。
FUSE允许用户空间文件系统通过/dev/fuse与内核通信,内核可能缓存目录条目以加速后续读取操作。
Bynario分析显示漏洞存在于fuse_add_dirent_to_cache()函数中:内核根据服务器控制的文件名长度计算目录项大小,随后将条目复制到单个缓存页面时未预先校验该目录项是否超过单页容量。
关键风险在于,恶意FUSE服务器可在4 KiB页系统上返回序列化大小为4120字节的目录项(超出单页容量24字节)。当内核重置偏移量为零并强制复制该记录时,额外字节将溢出至相邻内存页。危险性不仅在于内存损坏,更在于被破坏数据的具体位置。
Linux内核FUSE漏洞
在已验证的攻击场景中,溢出被用于篡改SUID二进制文件(如/usr/bin/su)的缓存字节,将可执行代码开头替换为简短payload。该payload在正常流程继续前调用setuid(0)和setgid(0)。
当这些身份变更系统调用在root属主程序内成功执行后,攻击者即可绕过常规身份验证检查并生成root shell。
攻击条件
该攻击为本地攻击,攻击者需具备挂载或运行FUSE文件系统的能力,可能通过非特权用户命名空间或fusermount3实现。
根据Bynario报告,该漏洞在启用大缓冲区的新版内核上可被利用,且仅影响使用4 KiB内存页面的系统。具有更大页面尺寸的系统不受此特定溢出尺寸影响。
修复方案
修复方案极为简洁:在缓存目录项前拒绝所有超出单页容量的条目。管理员还可通过以下措施降低风险:
- 限制FUSE功能使用范围
- 在非必要场景下移除
fusermount3的setuid权限 - 适当限制非特权命名空间
本公众号所载文章为本公众号原创或根据网络搜索下载编辑整理,文章版权归原作者所有,仅供读者学习、参考,禁止用于商业用途。因转载众多,无法找到真正来源,如标错来源,或对于文中所使用的图片、文字、链接中所包含的软件/资料等,如有侵权,请跟我们联系删除,谢谢!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网安百色 《Linux内核FUSE漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论