← Back to CVE List
CVE-2026-72138NVD
Vulnerability Summary
In the Linux kernel, the following vulnerability has been resolved:
xen/gntdev: fix error handling in ioctl
When gntdev_ioctl_map_grant_ref() fails to copy the operation result
back to userspace after successfully adding the mapping to the list,
the error path returns -EFAULT without releasing the reference
acquired by gntdev_alloc_map(). The mapping remains in priv->maps
with a refcount of 1, causing a memory leak and a dangling list
entry.
Additionally, gntdev_add_map() may modify map->index to avoid overlap
with existing mappings. Therefore, the index returned to userspace
must be obtained after gntdev_add_map() completes.
Fix this by holding the mutex across gntdev_add_map(), retrieving
the correct index, and copy_to_user(). If copy_to_user() fails,
remove the mapping from the list and release the reference while
still holding the lock.
Fix these issues by properly handling all error cases.
xen/gntdev: fix error handling in ioctl
When gntdev_ioctl_map_grant_ref() fails to copy the operation result
back to userspace after successfully adding the mapping to the list,
the error path returns -EFAULT without releasing the reference
acquired by gntdev_alloc_map(). The mapping remains in priv->maps
with a refcount of 1, causing a memory leak and a dangling list
entry.
Additionally, gntdev_add_map() may modify map->index to avoid overlap
with existing mappings. Therefore, the index returned to userspace
must be obtained after gntdev_add_map() completes.
Fix this by holding the mutex across gntdev_add_map(), retrieving
the correct index, and copy_to_user(). If copy_to_user() fails,
remove the mapping from the list and release the reference while
still holding the lock.
Fix these issues by properly handling all error cases.
External References
- https://git.kernel.org/stable/c/16d3ccdabb8dee9be2cdcd6d3f9a125572ec0454
- https://git.kernel.org/stable/c/18a693733f7ad004e1ab0466693121ca70cd95dd
- https://git.kernel.org/stable/c/1dd9cb98fe228e017fff9efb33862ff38c741b65
- https://git.kernel.org/stable/c/311011f8cc206c5af2877b03e3f627ee1b8fe024
- https://git.kernel.org/stable/c/45ca1afe2fd14c04e37227e79d3f8455831d8408
- https://git.kernel.org/stable/c/52dc40ef0cfee6ae89b7524967e73f0ba37906d7
- https://git.kernel.org/stable/c/6883269a323609f68f6faa903f8f8ff3d191cec8
- https://git.kernel.org/stable/c/6df926130aee6cab9b5d2e5b7862e49ccac348dc