CVE-2026-33179libfuse是Linux FUSE的参考实现。在3.18.0至3.18.2之前的版本中,fuse_uring_init_queue函数存在空指针引用和内存泄漏漏洞。当numa_alloc_local在io_uring队列条目设置期间失败时,代码会继续使用空指针。此外,当fuse_uring_register_queue失败时,NUMA分配的内存被泄漏,且函数错误地返回成功。该问题仅影响io_uring传输,不影响传统的/dev/fuse路径。本地用户可利用此漏洞使FUSE守护进程崩溃或导致资源耗尽。
该漏洞位于libfuse的io_uring传输初始化逻辑中。在`fuse_uring_init_queue`函数执行期间,代码调用`numa_alloc_local`分配内存。若该函数返回NULL(分配失败),代码缺乏有效的空值检查,继续执行后续操作导致空指针解引用,引发程序崩溃。此外,若`fuse_uring_register_queue`注册队列失败,此前分配的NUMA内存并未释放,造成内存泄漏。同时,该函数在失败时错误地返回了成功状态,掩盖了错误。攻击者需拥有本地低权限账户,通过恶意调用或耗尽系统内存条件触发该路径,导致拒绝服务或资源耗尽。传统/dev/fuse接口不受此漏洞影响。