CVE-2026-64264 in Linux信息

摘要

由 VulDB • 2026-07-25

在 Linux 内核中,已修复以下漏洞:

fuse-uring: 修复 fuse_uring_commit 中的 EFAULT 覆盖问题

copy_from_user() 在失败时返回未复制的字节数作为无符号剩余值(1..sizeof(struct fuse_out_header))。fuse_uring_commit 将该剩余值存储在 ssize_t 类型的 err 中,将 req->out.h.error 设置为 -EFAULT,然后跳转到 out: 标签处执行,此时 err 仍保留正数的剩余值。

err = copy_from_user(&req->out.h, &ent->headers->in_out, sizeof(req->out.h)); if (err) {
req->out.h.error = -EFAULT; goto out; /* err 是正数剩余值 */ } ... out: fuse_uring_req_end(ent, req, err);

随后,fuse_uring_req_end() 执行以下操作:

if (error) req->out.h.error = error;

这将刚刚赋值的 -EFAULT 覆盖为正数的剩余值。FUSE 调用方(如 fuse_simple_request())通过测试 err < 0 来检测失败情况,因此该正值被解释为成功,导致调用方继续使用未初始化或部分初始化的 req->out.args 继续执行。

修复方法是在跳转到 out: 之前,在失败分支中将 err 赋值为 -EFAULT,从而使 fuse_uring_req_end() 接收到负的 errno 值,并将 req->out.h.error 设置为 -EFAULT。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

来源

Want to know what is going to be exploited?

We predict KEV entries!