CVE-2024-26934

In the Linux kernel, the following vulnerability has been resolved: USB: core: Fix deadlock in usb_deauthorize_interface() Among the attribute file callback routines in drivers/usb/core/sysfs.c, the interface_authorized_store() function is the only one which acquires a device lock on an ancestor device: It calls usb_deauthorize_interface(), which locks the interface's parent USB device. The will lead to deadlock if another process already owns that lock and tries to remove the interface, whether through a configuration change or because the device has been disconnected. As part of the removal procedure, device_del() waits for all ongoing sysfs attribute callbacks to complete. But usb_deauthorize_interface() can't complete until the device lock has been released, and the lock won't be released until the removal has finished. The mechanism provided by sysfs to prevent this kind of deadlock is to use the sysfs_break_active_protection() function, which tells sysfs not to wait for the attribute callback. Reported-and-tested by: Yue Sun <samsun1006219@gmail.com> Reported by: xingwei lee <xrivendell7@gmail.com>
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:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:r1:*:*:*:*:*:*

History

27 Jun 2024, 13:15

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html -

25 Jun 2024, 23:15

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -

23 May 2024, 19:13

Type Values Removed Values Added
First Time Linux linux Kernel
Linux
CWE CWE-667
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: USB: core: corrige el punto muerto en usb_deauthorize_interface() Entre las rutinas de devolución de llamada de archivos de atributos en drivers/usb/core/sysfs.c, la función interface_authorized_store() es la única que adquiere un bloqueo de dispositivo en un dispositivo antecesor: llama a usb_deauthorize_interface(), que bloquea el dispositivo USB principal de la interfaz. Esto conducirá a un punto muerto si otro proceso ya posee ese bloqueo e intenta eliminar la interfaz, ya sea mediante un cambio de configuración o porque el dispositivo se ha desconectado. Como parte del procedimiento de eliminación, device_del() espera a que se completen todas las devoluciones de llamadas de atributos sysfs en curso. Pero usb_deauthorize_interface() no se puede completar hasta que se haya liberado el bloqueo del dispositivo, y el bloqueo no se liberará hasta que haya finalizado la eliminación. El mecanismo proporcionado por sysfs para evitar este tipo de punto muerto es utilizar la función sysfs_break_active_protection(), que le dice a sysfs que no espere la devolución de llamada del atributo. Reportado y probado por: Yue Sun Reportado por: xingwei lee
CPE cpe:2.3:o:linux:linux_kernel:6.9:r1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
References () https://git.kernel.org/stable/c/07acf979da33c721357ff27129edf74c23c036c6 - () https://git.kernel.org/stable/c/07acf979da33c721357ff27129edf74c23c036c6 - Patch
References () https://git.kernel.org/stable/c/122a06f1068bf5e39089863f4f60b1f5d4273384 - () https://git.kernel.org/stable/c/122a06f1068bf5e39089863f4f60b1f5d4273384 - Patch
References () https://git.kernel.org/stable/c/12d6a5681a0a5cecc2af7860f0a1613fa7c6e947 - () https://git.kernel.org/stable/c/12d6a5681a0a5cecc2af7860f0a1613fa7c6e947 - Patch
References () https://git.kernel.org/stable/c/1b175bc579f46520b11ecda443bcd2ee4904f66a - () https://git.kernel.org/stable/c/1b175bc579f46520b11ecda443bcd2ee4904f66a - Patch
References () https://git.kernel.org/stable/c/80ba43e9f799cbdd83842fc27db667289b3150f5 - () https://git.kernel.org/stable/c/80ba43e9f799cbdd83842fc27db667289b3150f5 - Patch
References () https://git.kernel.org/stable/c/8cbdd324b41528994027128207fae8100dff094f - () https://git.kernel.org/stable/c/8cbdd324b41528994027128207fae8100dff094f - Patch
References () https://git.kernel.org/stable/c/ab062fa3dc69aea88fe62162c5881ba14b50ecc5 - () https://git.kernel.org/stable/c/ab062fa3dc69aea88fe62162c5881ba14b50ecc5 - Patch
References () https://git.kernel.org/stable/c/dbdf66250d2d33e8b27352fcb901de79f3521057 - () https://git.kernel.org/stable/c/dbdf66250d2d33e8b27352fcb901de79f3521057 - Patch
References () https://git.kernel.org/stable/c/e451709573f8be904a8a72d0775bf114d7c291d9 - () https://git.kernel.org/stable/c/e451709573f8be904a8a72d0775bf114d7c291d9 - Patch

01 May 2024, 06:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-01 06:15

Updated : 2024-06-27 13:15


NVD link : CVE-2024-26934

Mitre link : CVE-2024-26934

CVE.ORG link : CVE-2024-26934


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-667

Improper Locking