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>
References
Link Resource
https://git.kernel.org/stable/c/07acf979da33c721357ff27129edf74c23c036c6 Patch
https://git.kernel.org/stable/c/122a06f1068bf5e39089863f4f60b1f5d4273384 Patch
https://git.kernel.org/stable/c/12d6a5681a0a5cecc2af7860f0a1613fa7c6e947 Patch
https://git.kernel.org/stable/c/1b175bc579f46520b11ecda443bcd2ee4904f66a Patch
https://git.kernel.org/stable/c/80ba43e9f799cbdd83842fc27db667289b3150f5 Patch
https://git.kernel.org/stable/c/8cbdd324b41528994027128207fae8100dff094f Patch
https://git.kernel.org/stable/c/ab062fa3dc69aea88fe62162c5881ba14b50ecc5 Patch
https://git.kernel.org/stable/c/dbdf66250d2d33e8b27352fcb901de79f3521057 Patch
https://git.kernel.org/stable/c/e451709573f8be904a8a72d0775bf114d7c291d9 Patch
https://git.kernel.org/stable/c/07acf979da33c721357ff27129edf74c23c036c6 Patch
https://git.kernel.org/stable/c/122a06f1068bf5e39089863f4f60b1f5d4273384 Patch
https://git.kernel.org/stable/c/12d6a5681a0a5cecc2af7860f0a1613fa7c6e947 Patch
https://git.kernel.org/stable/c/1b175bc579f46520b11ecda443bcd2ee4904f66a Patch
https://git.kernel.org/stable/c/80ba43e9f799cbdd83842fc27db667289b3150f5 Patch
https://git.kernel.org/stable/c/8cbdd324b41528994027128207fae8100dff094f Patch
https://git.kernel.org/stable/c/ab062fa3dc69aea88fe62162c5881ba14b50ecc5 Patch
https://git.kernel.org/stable/c/dbdf66250d2d33e8b27352fcb901de79f3521057 Patch
https://git.kernel.org/stable/c/e451709573f8be904a8a72d0775bf114d7c291d9 Patch
https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html
https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html
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

21 Nov 2024, 09:03

Type Values Removed Values Added
References
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html -
  • () https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html -
References () https://git.kernel.org/stable/c/07acf979da33c721357ff27129edf74c23c036c6 - Patch () https://git.kernel.org/stable/c/07acf979da33c721357ff27129edf74c23c036c6 - Patch
References () https://git.kernel.org/stable/c/122a06f1068bf5e39089863f4f60b1f5d4273384 - Patch () https://git.kernel.org/stable/c/122a06f1068bf5e39089863f4f60b1f5d4273384 - Patch
References () https://git.kernel.org/stable/c/12d6a5681a0a5cecc2af7860f0a1613fa7c6e947 - Patch () https://git.kernel.org/stable/c/12d6a5681a0a5cecc2af7860f0a1613fa7c6e947 - Patch
References () https://git.kernel.org/stable/c/1b175bc579f46520b11ecda443bcd2ee4904f66a - Patch () https://git.kernel.org/stable/c/1b175bc579f46520b11ecda443bcd2ee4904f66a - Patch
References () https://git.kernel.org/stable/c/80ba43e9f799cbdd83842fc27db667289b3150f5 - Patch () https://git.kernel.org/stable/c/80ba43e9f799cbdd83842fc27db667289b3150f5 - Patch
References () https://git.kernel.org/stable/c/8cbdd324b41528994027128207fae8100dff094f - Patch () https://git.kernel.org/stable/c/8cbdd324b41528994027128207fae8100dff094f - Patch
References () https://git.kernel.org/stable/c/ab062fa3dc69aea88fe62162c5881ba14b50ecc5 - Patch () https://git.kernel.org/stable/c/ab062fa3dc69aea88fe62162c5881ba14b50ecc5 - Patch
References () https://git.kernel.org/stable/c/dbdf66250d2d33e8b27352fcb901de79f3521057 - Patch () https://git.kernel.org/stable/c/dbdf66250d2d33e8b27352fcb901de79f3521057 - Patch
References () https://git.kernel.org/stable/c/e451709573f8be904a8a72d0775bf114d7c291d9 - Patch () https://git.kernel.org/stable/c/e451709573f8be904a8a72d0775bf114d7c291d9 - Patch

05 Nov 2024, 10:16

Type Values Removed Values Added
References
  • {'url': 'https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html', 'source': '416baaa9-dc9f-4396-8d5f-8c081fb06d67'}
  • {'url': 'https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html', 'source': '416baaa9-dc9f-4396-8d5f-8c081fb06d67'}

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
CPE cpe:2.3:o:linux:linux_kernel:6.9:r1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
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
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
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

01 May 2024, 06:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-01 06:15

Updated : 2024-11-21 09:03


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