• CVE-2022-48675

发布时间: 2024年6月19日

修改时间: 2024年8月30日

概要

In the Linux kernel, the following vulnerability has been resolved:IB/core: Fix a nested dead lock as part of ODP flowFix a nested dead lock as part of ODP flow by using mmput_async().From the below call trace [1] can see that calling mmput() once we havethe umem_odp-&gt;umem_mutex locked as required byib_umem_odp_map_dma_and_lock() might trigger in the same task theexit_mmap()-&gt;__mmu_notifier_release()-&gt;mlx5_ib_invalidate_range() whichmay dead lock when trying to lock the same mutex.Moving to use mmput_async() will solve the problem as the aboveexit_mmap() flow will be called in other task and will be executed oncethe lock will be available.[1][64843.077665] task:kworker/u133:2 state:D stack: 0 pid:80906 ppid:2 flags:0x00004000[64843.077672] Workqueue: mlx5_ib_page_fault mlx5_ib_eqe_pf_action [mlx5_ib][64843.077719] Call Trace:[64843.077722] <TASK&gt;[64843.077724] __schedule+0x23d/0x590[64843.077729] schedule+0x4e/0xb0[64843.077735] schedule_preempt_disabled+0xe/0x10[64843.077740] __mutex_lock.constprop.0+0x263/0x490[64843.077747] __mutex_lock_slowpath+0x13/0x20[64843.077752] mutex_lock+0x34/0x40[64843.077758] mlx5_ib_invalidate_range+0x48/0x270 [mlx5_ib][64843.077808] __mmu_notifier_release+0x1a4/0x200[64843.077816] exit_mmap+0x1bc/0x200[64843.077822] ? walk_page_range+0x9c/0x120[64843.077828] ? __cond_resched+0x1a/0x50[64843.077833] ? mutex_lock+0x13/0x40[64843.077839] ? uprobe_clear_state+0xac/0x120[64843.077860] mmput+0x5f/0x140[64843.077867] ib_umem_odp_map_dma_and_lock+0x21b/0x580 [ib_core][64843.077931] pagefault_real_mr+0x9a/0x140 [mlx5_ib][64843.077962] pagefault_mr+0xb4/0x550 [mlx5_ib][64843.077992] pagefault_single_data_segment.constprop.0+0x2ac/0x560[mlx5_ib][64843.078022] mlx5_ib_eqe_pf_action+0x528/0x780 [mlx5_ib][64843.078051] process_one_work+0x22b/0x3d0[64843.078059] worker_thread+0x53/0x410[64843.078065] ? process_one_work+0x3d0/0x3d0[64843.078073] kthread+0x12a/0x150[64843.078079] ? set_kthread_struct+0x50/0x50[64843.078085] ret_from_fork+0x22/0x30[64843.078093] </TASK&gt;

CVSS v3 指标

NVD openEuler
CVSS评分 5.5 5.5
Attack Vector Local Local
Attack Complexity Low Low
Privileges Required Low Low
User Interaction None None
Scope Unchanged Unchanged
Confidentiality None None
Integrity None None
Availability High High

安全公告

公告名 概要 发布时间
KylinSec-SA-2024-2776 In the Linux kernel, the following vulnerability has been resolved:IB/core: Fix a nested dead lock as part of ODP flowFix a nested dead lock as part of ODP flow by using mmput_async().From the below call trace [1] can see that calling mmput() once we havethe umem_odp-&gt;umem_mutex locked as required byib_umem_odp_map_dma_and_lock() might trigger in the same task theexit_mmap()-&gt;__mmu_notifier_release()-&gt;mlx5_ib_invalidate_range() whichmay dead lock when trying to lock the same mutex.Moving to use mmput_async() will solve the problem as the aboveexit_mmap() flow will be called in other task and will be executed oncethe lock will be available.[1][64843.077665] task:kworker/u133:2 state:D stack: 0 pid:80906 ppid:2 flags:0x00004000[64843.077672] Workqueue: mlx5_ib_page_fault mlx5_ib_eqe_pf_action [mlx5_ib][64843.077719] Call Trace:[64843.077722] <TASK&gt;[64843.077724] __schedule+0x23d/0x590[64843.077729] schedule+0x4e/0xb0[64843.077735] schedule_preempt_disabled+0xe/0x10[64843.077740] __mutex_lock.constprop.0+0x263/0x490[64843.077747] __mutex_lock_slowpath+0x13/0x20[64843.077752] mutex_lock+0x34/0x40[64843.077758] mlx5_ib_invalidate_range+0x48/0x270 [mlx5_ib][64843.077808] __mmu_notifier_release+0x1a4/0x200[64843.077816] exit_mmap+0x1bc/0x200[64843.077822] ? walk_page_range+0x9c/0x120[64843.077828] ? __cond_resched+0x1a/0x50[64843.077833] ? mutex_lock+0x13/0x40[64843.077839] ? uprobe_clear_state+0xac/0x120[64843.077860] mmput+0x5f/0x140[64843.077867] ib_umem_odp_map_dma_and_lock+0x21b/0x580 [ib_core][64843.077931] pagefault_real_mr+0x9a/0x140 [mlx5_ib][64843.077962] pagefault_mr+0xb4/0x550 [mlx5_ib][64843.077992] pagefault_single_data_segment.constprop.0+0x2ac/0x560[mlx5_ib][64843.078022] mlx5_ib_eqe_pf_action+0x528/0x780 [mlx5_ib][64843.078051] process_one_work+0x22b/0x3d0[64843.078059] worker_thread+0x53/0x410[64843.078065] ? process_one_work+0x3d0/0x3d0[64843.078073] kthread+0x12a/0x150[64843.078079] ? set_kthread_struct+0x50/0x50[64843.078085] ret_from_fork+0x22/0x30[64843.078093] </TASK&gt; 2024年6月19日
KylinSec-SA-2024-4977 kernel security update 2024年8月30日

影响产品

产品 状态
KY3.4-5A kernel Unaffected
KY3.5.2 kernel Fixed
KY3.5.2 kernel Unaffected
V6 kernel Unaffected