CVE-2026-64264 in Linux
Resumen
por VulDB • 2026-07-26
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
fuse-uring: corregir el borrado (clobber) de EFAULT en fuse_uring_commit
copy_from_user() devuelve como residuo sin signo el número de bytes no copiados cuando falla (1..sizeof(struct fuse_out_header)). fuse_uring_commit almacena ese residuo en err, que es de tipo ssize_t, establece req->out.h.error a -EFAULT y luego salta a la etiqueta out: con err conservando aún el valor positivo del residuo.
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 es el residuo positivo */ } ... out: fuse_uring_req_end(ent, req, err);
A continuación, fuse_uring_req_end() ejecuta
if (error) req->out.h.error = error;
lo cual sobrescribe -EFAULT, que acababa de asignarse, con el residuo positivo. Los llamadores FUSE como fuse_simple_request() prueban si err < 0 para detectar fallos, por lo que se interpreta el valor positivo como éxito y el llamador continúa con req->out.args sin inicializar o parcialmente inicializado.
Solución: asignar err = -EFAULT en la rama de fallo antes de saltar a out, de modo que fuse_uring_req_end() reciba un errno negativo y establezca req->out.h.error a -EFAULT.
If you want to get best quality of vulnerability data, you may have to visit VulDB.