CVE-2023-54000
Description
In the Linux kernel, the following vulnerability has been resolved: net: hns3: fix deadlock issue when externel_lb and reset are executed together When externel_lb and reset are executed together, a deadlock may occur: [ 3147.217009] INFO: task kworker/u321:0:7 blocked for more than 120 seconds. [ 3147.230483] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 3147.238999] task:kworker/u321:0 state:D stack: 0 pid: 7 ppid: 2 flags:0x00000008 [ 3147.248045] Workqueue: hclge hclge_service_task [hclge] [ 3147.253957] Call trace: [ 3147.257093] __switch_to+0x7c/0xbc [ 3147.261183] __schedule+0x338/0x6f0 [ 3147.265357] schedule+0x50/0xe0 [ 3147.269185] schedule_preempt_disabled+0x18/0x24 [ 3147.274488] __mutex_lock.constprop.0+0x1d4/0x5dc [ 3147.279880] __mutex_lock_slowpath+0x1c/0x30 [ 3147.284839] mutex_lock+0x50/0x60 [ 3147.288841] rtnl_lock+0x20/0x2c [ 3147.292759] hclge_reset_prepare+0x68/0x90 [hclge] [ 3147.298239] hclge_reset_subtask+0x88/0xe0 [hclge] [ 3147.303718] hclge_reset_service_task+0x84/0x120 [hclge] [ 3147.309718] hclge_service_task+0x2c/0x70 [hclge] [ 3147.315109] process_one_work+0x1d0/0x490 [ 3147.319805] worker_thread+0x158/0x3d0 [ 3147.324240] kthread+0x108/0x13c [ 3147.328154] ret_from_fork+0x10/0x18 In externel_lb process, the hns3 driver call napi_disable() first, then the reset happen, then the restore process of the externel_lb will fail, and will not call napi_enable(). When doing externel_lb again, napi_disable() will be double call, cause a deadlock of rtnl_lock(). This patch use the HNS3_NIC_STATE_DOWN state to protect the calling of napi_disable() and napi_enable() in externel_lb process, just as the usage in ndo_stop() and ndo_start().
How to fix
- Linux Linuxd9f609cb50ebab4aa6341112f406bf9d3928ac81, 743f7c1762e098048ede8cdf8c89a118f8d12391, ef2d6bf9695669d31ece9f2ef39dec84874a87c7, ac6257a3ae5db5193b1f19c268e4f72d274ddb88 or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux Linux | 85fc1d802edf36123ae1bd0a13892bb3772c197f ≤ v < d9f609cb50ebab4aa6341112f406bf9d3928ac81, 04b6ba143521f4485b7f2c36c655b262a79dae97 ≤ v < 743f7c1762e098048ede8cdf8c89a118f8d12391, 04b6ba143521f4485b7f2c36c655b262a79dae97 ≤ v < ef2d6bf9695669d31ece9f2ef39dec84874a87c7, 04b6ba143521f4485b7f2c36c655b262a79dae97 ≤ v < ac6257a3ae5db5193b1f19c268e4f72d274ddb88, 6.1 | d9f609cb50ebab4aa6341112f406bf9d3928ac81, 743f7c1762e098048ede8cdf8c89a118f8d12391, ef2d6bf9695669d31ece9f2ef39dec84874a87c7, ac6257a3ae5db5193b1f19c268e4f72d274ddb88 |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.