Description
In the Linux kernel, the following vulnerability has been resolved: net/mlx5: Fix steering rules cleanup vport's mc, uc and multicast rules are not deleted in teardown path when EEH happens. Since the vport's promisc settings(uc, mc and all) in firmware are reset after EEH, mlx5 driver will try to delete the above rules in the initialization path. This cause kernel crash because these software rules are no longer valid. Fix by nullifying these rules right after delete to avoid accessing any dangling pointers. Call Trace: __list_del_entry_valid+0xcc/0x100 (unreliable) tree_put_node+0xf4/0x1b0 [mlx5_core] tree_remove_node+0x30/0x70 [mlx5_core] mlx5_del_flow_rules+0x14c/0x1f0 [mlx5_core] esw_apply_vport_rx_mode+0x10c/0x200 [mlx5_core] esw_update_vport_rx_mode+0xb4/0x180 [mlx5_core] esw_vport_change_handle_locked+0x1ec/0x230 [mlx5_core] esw_enable_vport+0x130/0x260 [mlx5_core] mlx5_eswitch_enable_sriov+0x2a0/0x2f0 [mlx5_core] mlx5_device_enable_sriov+0x74/0x440 [mlx5_core] mlx5_load_one+0x114c/0x1550 [mlx5_core] mlx5_pci_resume+0x68/0xf0 [mlx5_core] eeh_report_resume+0x1a4/0x230 eeh_pe_dev_traverse+0x98/0x170 eeh_handle_normal_event+0x3e4/0x640 eeh_handle_event+0x4c/0x370 eeh_event_handler+0x14c/0x210 kthread+0x168/0x1b0 ret_from_kernel_thread+0x5c/0x84
Product status
a35f71f27a614aff106cc89b86168962bce2725f (git) before 18cead61e437f4c7898acca0a5f3df12f801d97f
a35f71f27a614aff106cc89b86168962bce2725f (git) before 4df1f2d36bdc9a368650bf14b9097c555e95f71d
a35f71f27a614aff106cc89b86168962bce2725f (git) before 63546395a0e6ac264f78f65218086ce6014b4494
a35f71f27a614aff106cc89b86168962bce2725f (git) before 6f5780536181d1d0d09a11a1bc92f22e143447e2
a35f71f27a614aff106cc89b86168962bce2725f (git) before 922f56e9a795d6f3dd72d3428ebdd7ee040fa855
4.7
Any version before 4.7
5.10.177 (semver)
5.15.105 (semver)
6.1.22 (semver)
6.2.9 (semver)
6.3 (original_commit_for_fix)
References
git.kernel.org/...c/18cead61e437f4c7898acca0a5f3df12f801d97f
git.kernel.org/...c/4df1f2d36bdc9a368650bf14b9097c555e95f71d
git.kernel.org/...c/63546395a0e6ac264f78f65218086ce6014b4494
git.kernel.org/...c/6f5780536181d1d0d09a11a1bc92f22e143447e2
git.kernel.org/...c/922f56e9a795d6f3dd72d3428ebdd7ee040fa855