CVE-2022-48801

In the Linux kernel, the following vulnerability has been resolved: iio: buffer: Fix file related error handling in IIO_BUFFER_GET_FD_IOCTL If we fail to copy the just created file descriptor to userland, we try to clean up by putting back 'fd' and freeing 'ib'. The code uses put_unused_fd() for the former which is wrong, as the file descriptor was already published by fd_install() which gets called internally by anon_inode_getfd(). This makes the error handling code leaving a half cleaned up file descriptor table around and a partially destructed 'file' object, allowing userland to play use-after-free tricks on us, by abusing the still usable fd and making the code operate on a dangling 'file->private_data' pointer. Instead of leaving the kernel in a partially corrupted state, don't attempt to explicitly clean up and leave this to the process exit path that'll release any still valid fds, including the one created by the previous call to anon_inode_getfd(). Simply return -EFAULT to indicate the error.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:*

History

24 Sep 2025, 16:54

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/202071d2518537866d291aa7cf26af54e674f4d4 - () https://git.kernel.org/stable/c/202071d2518537866d291aa7cf26af54e674f4d4 - Patch
References () https://git.kernel.org/stable/c/b7f54894aa7517d2b6c797a499b9f491e9db9083 - () https://git.kernel.org/stable/c/b7f54894aa7517d2b6c797a499b9f491e9db9083 - Patch
References () https://git.kernel.org/stable/c/c72ea20503610a4a7ba26c769357d31602769c01 - () https://git.kernel.org/stable/c/c72ea20503610a4a7ba26c769357d31602769c01 - Patch
CWE CWE-416
CPE cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
First Time Linux linux Kernel
Linux

21 Nov 2024, 07:34

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/202071d2518537866d291aa7cf26af54e674f4d4 - () https://git.kernel.org/stable/c/202071d2518537866d291aa7cf26af54e674f4d4 -
References () https://git.kernel.org/stable/c/b7f54894aa7517d2b6c797a499b9f491e9db9083 - () https://git.kernel.org/stable/c/b7f54894aa7517d2b6c797a499b9f491e9db9083 -
References () https://git.kernel.org/stable/c/c72ea20503610a4a7ba26c769357d31602769c01 - () https://git.kernel.org/stable/c/c72ea20503610a4a7ba26c769357d31602769c01 -
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: iio: buffer: corrige el manejo de errores relacionados con archivos en IIO_BUFFER_GET_FD_IOCTL Si no logramos copiar el descriptor de archivo recién creado en la zona de usuario, intentamos limpiar colocando de nuevo 'fd' y liberando ' ib'. El código usa put_unused_fd() para el primero, lo cual es incorrecto, ya que el descriptor de archivo ya fue publicado por fd_install(), que es llamado internamente por anon_inode_getfd(). Esto hace que el código de manejo de errores deje una tabla de descriptores de archivos medio limpia y un objeto 'archivo' parcialmente destruido, lo que permite que Userland nos juegue trucos de use-after-free, abusando del fd aún utilizable y haciendo que el código funcione en un puntero 'archivo->datos_privados' colgando. En lugar de dejar el kernel en un estado parcialmente dañado, no intente limpiar explícitamente y dejar esto en la ruta de salida del proceso que liberará cualquier fds aún válido, incluido el creado por la llamada anterior a anon_inode_getfd(). Simplemente devuelva -EFAULT para indicar el error.

16 Jul 2024, 12:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-16 12:15

Updated : 2025-09-24 16:54


NVD link : CVE-2022-48801

Mitre link : CVE-2022-48801

CVE.ORG link : CVE-2022-48801


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free