CVE-2024-46791

In the Linux kernel, the following vulnerability has been resolved: can: mcp251x: fix deadlock if an interrupt occurs during mcp251x_open The mcp251x_hw_wake() function is called with the mpc_lock mutex held and disables the interrupt handler so that no interrupts can be processed while waking the device. If an interrupt has already occurred then waiting for the interrupt handler to complete will deadlock because it will be trying to acquire the same mutex. CPU0 CPU1 ---- ---- mcp251x_open() mutex_lock(&priv->mcp_lock) request_threaded_irq() <interrupt> mcp251x_can_ist() mutex_lock(&priv->mcp_lock) mcp251x_hw_wake() disable_irq() <-- deadlock Use disable_irq_nosync() instead because the interrupt handler does everything while holding the mutex so it doesn't matter if it's still running.
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:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:*

History

20 Sep 2024, 18:21

Type Values Removed Values Added
First Time Linux linux Kernel
Linux
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE CWE-667
References () https://git.kernel.org/stable/c/3a49b6b1caf5cefc05264d29079d52c99cb188e0 - () https://git.kernel.org/stable/c/3a49b6b1caf5cefc05264d29079d52c99cb188e0 - Patch
References () https://git.kernel.org/stable/c/513c8fc189b52f7922e36bdca58997482b198f0e - () https://git.kernel.org/stable/c/513c8fc189b52f7922e36bdca58997482b198f0e - Patch
References () https://git.kernel.org/stable/c/7dd9c26bd6cf679bcfdef01a8659791aa6487a29 - () https://git.kernel.org/stable/c/7dd9c26bd6cf679bcfdef01a8659791aa6487a29 - Patch
References () https://git.kernel.org/stable/c/8fecde9c3f9a4b97b68bb97c9f47e5b662586ba7 - () https://git.kernel.org/stable/c/8fecde9c3f9a4b97b68bb97c9f47e5b662586ba7 - Patch
References () https://git.kernel.org/stable/c/e554113a1cd2a9cfc6c7af7bdea2141c5757e188 - () https://git.kernel.org/stable/c/e554113a1cd2a9cfc6c7af7bdea2141c5757e188 - Patch
References () https://git.kernel.org/stable/c/f7ab9e14b23a3eac6714bdc4dba244d8aa1ef646 - () https://git.kernel.org/stable/c/f7ab9e14b23a3eac6714bdc4dba244d8aa1ef646 - Patch

20 Sep 2024, 12:30

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: can: mcp251x: soluciona el bloqueo si se produce una interrupción durante mcp251x_open La función mcp251x_hw_wake() se llama con el mutex mpc_lock retenido y desactiva el controlador de interrupciones para que no se puedan procesar interrupciones mientras se activa el dispositivo. Si ya se produjo una interrupción, esperar a que se complete el controlador de interrupciones provocará un bloqueo porque intentará adquirir el mismo mutex. CPU0 CPU1 ---- ---- mcp251x_open() mutex_lock(&amp;priv-&gt;mcp_lock) request_threaded_irq() mcp251x_can_ist() mutex_lock(&amp;priv-&gt;mcp_lock) mcp251x_hw_wake() deshabilitar_irq() &lt;-- bloqueo Utilice deshabilitar_irq_nosync() en su lugar porque el controlador de interrupciones hace todo mientras mantiene el mutex, por lo que no importa si todavía se está ejecutando.

18 Sep 2024, 08:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-09-18 08:15

Updated : 2024-09-20 18:21


NVD link : CVE-2024-46791

Mitre link : CVE-2024-46791

CVE.ORG link : CVE-2024-46791


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-667

Improper Locking