CVE-2024-41053

In the Linux kernel, the following vulnerability has been resolved: scsi: ufs: core: Fix ufshcd_abort_one racing issue When ufshcd_abort_one is racing with the completion ISR, the completed tag of the request's mq_hctx pointer will be set to NULL by ISR. Return success when request is completed by ISR because ufshcd_abort_one does not need to do anything. The racing flow is: Thread A ufshcd_err_handler step 1 ... ufshcd_abort_one ufshcd_try_to_abort_task ufshcd_cmd_inflight(true) step 3 ufshcd_mcq_req_to_hwq blk_mq_unique_tag rq->mq_hctx->queue_num step 5 Thread B ufs_mtk_mcq_intr(cq complete ISR) step 2 scsi_done ... __blk_mq_free_request rq->mq_hctx = NULL; step 4 Below is KE back trace. ufshcd_try_to_abort_task: cmd at tag 41 not pending in the device. ufshcd_try_to_abort_task: cmd at tag=41 is cleared. Aborting tag 41 / CDB 0x28 succeeded Unable to handle kernel NULL pointer dereference at virtual address 0000000000000194 pc : [0xffffffddd7a79bf8] blk_mq_unique_tag+0x8/0x14 lr : [0xffffffddd6155b84] ufshcd_mcq_req_to_hwq+0x1c/0x40 [ufs_mediatek_mod_ise] do_mem_abort+0x58/0x118 el1_abort+0x3c/0x5c el1h_64_sync_handler+0x54/0x90 el1h_64_sync+0x68/0x6c blk_mq_unique_tag+0x8/0x14 ufshcd_err_handler+0xae4/0xfa8 [ufs_mediatek_mod_ise] process_one_work+0x208/0x4fc worker_thread+0x228/0x438 kthread+0x104/0x1d4 ret_from_fork+0x10/0x20
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

21 Aug 2024, 19:21

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: scsi: ufs: core: solucione el problema de ejecución de ufshcd_abort_one Cuando ufshcd_abort_one se ejecuta con el ISR de finalización, ISR establecerá la etiqueta completada del puntero mq_hctx de la solicitud en NULL. Devuelve el éxito cuando ISR completa la solicitud porque ufshcd_abort_one no necesita hacer nada. El flujo de ejecucuones es: Hilo A ufshcd_err_handler paso 1 ... ufshcd_abort_one ufshcd_try_to_abort_task ufshcd_cmd_inflight(true) paso 3 ufshcd_mcq_req_to_hwq blk_mq_unique_tag rq->mq_hctx->queue_num paso 5 Hilo B (cq completar ISR) paso 2 scsi_done... __blk_mq_free_request rq-> mq_hctx = NULO; paso 4 A continuación se muestra el seguimiento de KE. ufshcd_try_to_abort_task: cmd en la etiqueta 41 no está pendiente en el dispositivo. ufshcd_try_to_abort_task: cmd en la etiqueta = 41 se borra. Anulación de la etiqueta 41 / CDB 0x28 exitosa No se puede manejar la desreferencia del puntero NULL del kernel en la dirección virtual 0000000000000194 pc: [0xffffffddd7a79bf8] blk_mq_unique_tag+0x8/0x14 lr: [0xffffffddd6155b84] x1c/0x40 [ufs_mediatek_mod_ise] do_mem_abort+0x58/0x118 el1_abort+0x3c/ 0x5c el1h_64_sync_handler+0x54/0x90 el1h_64_sync+0x68/0x6c blk_mq_unique_tag+0x8/0x14 ufshcd_err_handler+0xae4/0xfa8 [ufs_mediatek_mod_ise] Process_one_work+0x208/0x4fc trabajador_thread+0x228/0 x438 kthread+0x104/0x1d4 ret_from_fork+0x10/0x20
First Time Linux linux Kernel
Linux
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE CWE-476
References () https://git.kernel.org/stable/c/74736103fb4123c71bf11fb7a6abe7c884c5269e - () https://git.kernel.org/stable/c/74736103fb4123c71bf11fb7a6abe7c884c5269e - Patch
References () https://git.kernel.org/stable/c/b5a6ac887256762758bfe7f2918cb0233aa544f4 - () https://git.kernel.org/stable/c/b5a6ac887256762758bfe7f2918cb0233aa544f4 - Patch
References () https://git.kernel.org/stable/c/c3111b3cf3889bfa7b73ebff83d7397db9b7e5e0 - () https://git.kernel.org/stable/c/c3111b3cf3889bfa7b73ebff83d7397db9b7e5e0 - Patch

29 Jul 2024, 15:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-29 15:15

Updated : 2024-08-21 19:21


NVD link : CVE-2024-41053

Mitre link : CVE-2024-41053

CVE.ORG link : CVE-2024-41053


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference