In the Linux kernel, the following vulnerability has been resolved:
scsi: ufs: core: Fix possible NULL pointer dereference in ufshcd_add_command_trace()
The kernel log indicates a crash in ufshcd_add_command_trace, due to a NULL
pointer dereference when accessing hwq->id. This can happen if
ufshcd_mcq_req_to_hwq() returns NULL.
This patch adds a NULL check for hwq before accessing its id field to
prevent a kernel crash.
Kernel log excerpt:
[] notify_die+0x4c/0x8c
[] __die+0x60/0xb0
[] die+0x4c/0xe0
[] die_kernel_fault+0x74/0x88
[] __do_kernel_fault+0x314/0x318
[] do_page_fault+0xa4/0x5f8
[] do_translation_fault+0x34/0x54
[] do_mem_abort+0x50/0xa8
[] el1_abort+0x3c/0x64
[] el1h_64_sync_handler+0x44/0xcc
[] el1h_64_sync+0x80/0x88
[] ufshcd_add_command_trace+0x23c/0x320
[] ufshcd_compl_one_cqe+0xa4/0x404
[] ufshcd_mcq_poll_cqe_lock+0xac/0x104
[] ufs_mtk_mcq_intr+0x54/0x74 [ufs_mediatek_mod]
[] __handle_irq_event_percpu+0xc8/0x348
[] handle_irq_event+0x3c/0xa8
[] handle_fasteoi_irq+0xf8/0x294
[] generic_handle_domain_irq+0x54/0x80
[] gic_handle_irq+0x1d4/0x330
[] call_on_irq_stack+0x44/0x68
[] do_interrupt_handler+0x78/0xd8
[] el1_interrupt+0x48/0xa8
[] el1h_64_irq_handler+0x14/0x24
[] el1h_64_irq+0x80/0x88
[] arch_local_irq_enable+0x4/0x1c
[] cpuidle_enter+0x34/0x54
[] do_idle+0x1dc/0x2f8
[] cpu_startup_entry+0x30/0x3c
[] secondary_start_kernel+0x134/0x1ac
[] __secondary_switched+0xc4/0xcc
References
In the Linux kernel, the following vulnerability has been resolved:
scsi: ufs: core: Fix possible NULL pointer dereference in ufshcd_add_command_trace()
The kernel log indicates a crash in ufshcd_add_command_trace, due to a NULL
pointer dereference when accessing hwq->id. This can happen if
ufshcd_mcq_req_to_hwq() returns NULL.
This patch adds a NULL check for hwq before accessing its id field to
prevent a kernel crash.
Kernel log excerpt:
[] notify_die+0x4c/0x8c
[] __die+0x60/0xb0
[] die+0x4c/0xe0
[] die_kernel_fault+0x74/0x88
[] __do_kernel_fault+0x314/0x318
[] do_page_fault+0xa4/0x5f8
[] do_translation_fault+0x34/0x54
[] do_mem_abort+0x50/0xa8
[] el1_abort+0x3c/0x64
[] el1h_64_sync_handler+0x44/0xcc
[] el1h_64_sync+0x80/0x88
[] ufshcd_add_command_trace+0x23c/0x320
[] ufshcd_compl_one_cqe+0xa4/0x404
[] ufshcd_mcq_poll_cqe_lock+0xac/0x104
[] ufs_mtk_mcq_intr+0x54/0x74 [ufs_mediatek_mod]
[] __handle_irq_event_percpu+0xc8/0x348
[] handle_irq_event+0x3c/0xa8
[] handle_fasteoi_irq+0xf8/0x294
[] generic_handle_domain_irq+0x54/0x80
[] gic_handle_irq+0x1d4/0x330
[] call_on_irq_stack+0x44/0x68
[] do_interrupt_handler+0x78/0xd8
[] el1_interrupt+0x48/0xa8
[] el1h_64_irq_handler+0x14/0x24
[] el1h_64_irq+0x80/0x88
[] arch_local_irq_enable+0x4/0x1c
[] cpuidle_enter+0x34/0x54
[] do_idle+0x1dc/0x2f8
[] cpu_startup_entry+0x30/0x3c
[] secondary_start_kernel+0x134/0x1ac
[] __secondary_switched+0xc4/0xcc
References