Linux FUSE是Linux内核提供的用户态文件系统框架,允许普通用户在不编写内核模块的情况下实现和挂载自定义文件系统。
简述:Linux FUSE page cache存在本地权限提升漏洞,由于其FUSE readdir缓存逻辑中,fuse_add_dirent_to_cache()会根据FUSE服务端返回的namelen计算目录项序列化长度,并复制到单个page-cache页中。原逻辑只检查目录项是否能放入“当前页剩余空间”,但没有检查该目录项本身是否超过PAGE_SIZE。恶意FUSE服务端可返回namelen=4095的目录项,使记录长度达到4120字节。在4KB页系统上,memcpy()会向相邻内核页溢出24字节,造成受控越界写。成功利用后,可能导致系统权限被完全接管、敏感数据泄露、系统配置被篡改、后门账户被植入,严重时可造成系统崩溃或业务中断。0x05 POC状态
0x06 修复建议
目前官方已发布漏洞修复版本,建议用户升级到安全版本: