CVE-2024-27435

In the Linux kernel, the following vulnerability has been resolved: nvme: fix reconnection fail due to reserved tag allocation We found a issue on production environment while using NVMe over RDMA, admin_q reconnect failed forever while remote target and network is ok. After dig into it, we found it may caused by a ABBA deadlock due to tag allocation. In my case, the tag was hold by a keep alive request waiting inside admin_q, as we quiesced admin_q while reset ctrl, so the request maked as idle and will not process before reset success. As fabric_q shares tagset with admin_q, while reconnect remote target, we need a tag for connect command, but the only one reserved tag was held by keep alive command which waiting inside admin_q. As a result, we failed to reconnect admin_q forever. In order to fix this issue, I think we should keep two reserved tags for admin queue.
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:5.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc8:*:*:*:*:*:*

History

19 Sep 2025, 16:21

Type Values Removed Values Added
First Time Linux
Linux linux Kernel
CWE CWE-667
References () https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8 - () https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8 - Patch
References () https://git.kernel.org/stable/c/262da920896e2f2ab0e3947d9dbee0aa09045818 - () https://git.kernel.org/stable/c/262da920896e2f2ab0e3947d9dbee0aa09045818 - Patch
References () https://git.kernel.org/stable/c/6851778504cdb49431809b4ba061903d5f592c96 - () https://git.kernel.org/stable/c/6851778504cdb49431809b4ba061903d5f592c96 - Patch
References () https://git.kernel.org/stable/c/de105068fead55ed5c07ade75e9c8e7f86a00d1d - () https://git.kernel.org/stable/c/de105068fead55ed5c07ade75e9c8e7f86a00d1d - Patch
References () https://git.kernel.org/stable/c/ff2f90f88d78559802466ad1c84ac5bda4416b3a - () https://git.kernel.org/stable/c/ff2f90f88d78559802466ad1c84ac5bda4416b3a - Patch
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc8:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.12:rc7:*:*:*:*:*:*

21 Nov 2024, 09:04

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8 - () https://git.kernel.org/stable/c/149afee5c7418ec5db9d7387b9c9a5c1eb7ea2a8 -
References () https://git.kernel.org/stable/c/262da920896e2f2ab0e3947d9dbee0aa09045818 - () https://git.kernel.org/stable/c/262da920896e2f2ab0e3947d9dbee0aa09045818 -
References () https://git.kernel.org/stable/c/6851778504cdb49431809b4ba061903d5f592c96 - () https://git.kernel.org/stable/c/6851778504cdb49431809b4ba061903d5f592c96 -
References () https://git.kernel.org/stable/c/de105068fead55ed5c07ade75e9c8e7f86a00d1d - () https://git.kernel.org/stable/c/de105068fead55ed5c07ade75e9c8e7f86a00d1d -
References () https://git.kernel.org/stable/c/ff2f90f88d78559802466ad1c84ac5bda4416b3a - () https://git.kernel.org/stable/c/ff2f90f88d78559802466ad1c84ac5bda4416b3a -

06 Nov 2024, 17:35

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: nvme: se corrigió el error de reconexión debido a la asignación de etiquetas reservadas. Encontramos un problema en el entorno de producción al usar NVMe sobre RDMA, la reconexión de admin_q falló para siempre mientras el objetivo remoto y la red están bien. Después de investigarlo, descubrimos que puede deberse a un punto muerto de ABBA debido a la asignación de etiquetas. En mi caso, la etiqueta estaba retenida por una solicitud de mantenimiento en espera dentro de admin_q, ya que desactivamos admin_q mientras reiniciamos Ctrl, por lo que la solicitud se realizó como inactiva y no se procesará antes de que el reinicio se realice correctamente. Como fabric_q comparte el conjunto de etiquetas con admin_q, mientras reconectamos el objetivo remoto, necesitamos una etiqueta para el comando de conexión, pero la única etiqueta reservada estaba mantenida por el comando Keep Alive que esperaba dentro de admin_q. Como resultado, no pudimos volver a conectar admin_q para siempre. Para solucionar este problema, creo que deberíamos mantener dos etiquetas reservadas para la cola de administración.

17 May 2024, 13:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-17 13:15

Updated : 2025-09-19 16:21


NVD link : CVE-2024-27435

Mitre link : CVE-2024-27435

CVE.ORG link : CVE-2024-27435


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-667

Improper Locking