CVE-2023-54000
Unknown Unknown - Not Provided
Deadlock Vulnerability in Linux hns3 Driver During External_lb Reset

Publication date: 2025-12-24

Last updated on: 2025-12-24

Assigner: kernel.org

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().
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-12-24
Last Modified
2025-12-24
Generated
2026-05-07
AI Q&A
2025-12-24
EPSS Evaluated
2026-05-05
NVD
EUVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
huawei hns3 *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability occurs in the Linux kernel's hns3 network driver when the externel_lb (external loopback) and reset operations are executed together. During this process, the driver calls napi_disable() first, then a reset happens, but the restore process fails to call napi_enable(). When externel_lb is executed again, napi_disable() is called twice, causing a deadlock on rtnl_lock(). The issue is fixed by using a state flag (HNS3_NIC_STATE_DOWN) to protect calls to napi_disable() and napi_enable(), preventing the deadlock.


How can this vulnerability impact me? :

This vulnerability can cause a deadlock in the Linux kernel's network driver, leading to tasks being blocked indefinitely (hung tasks). This can result in network service disruptions or degraded system performance on affected systems using the hns3 driver when externel_lb and reset operations occur simultaneously.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability can be detected by observing kernel logs for deadlock messages related to the hns3 driver. Specifically, look for messages indicating a task (such as kworker/u321:0) blocked for more than 120 seconds and call traces involving rtnl_lock and hclge_reset functions. You can check the kernel log using the command: dmesg | grep -i 'kworker\|hclge\|rtnl_lock' to identify such deadlock symptoms.


What immediate steps should I take to mitigate this vulnerability?

Immediate mitigation involves updating the Linux kernel to a version that includes the patch fixing the deadlock issue in the hns3 driver. The patch uses the HNS3_NIC_STATE_DOWN state to properly protect calls to napi_disable() and napi_enable() during externel_lb processes, preventing the deadlock. Until the update is applied, avoid executing externel_lb and reset operations together on affected systems to prevent triggering the deadlock.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart