CVE-2023-54000

Source
https://cve.org/CVERecord?id=CVE-2023-54000
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54000.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-54000
Downstream
Related
Published
2025-12-24T10:55:36.216Z
Modified
2026-03-23T04:59:48.903499240Z
Summary
net: hns3: fix deadlock issue when externel_lb and reset are executed together
Details

In the Linux kernel, the following vulnerability has been resolved:

net: hns3: fix deadlock issue when externel_lb and reset are executed together

When externellb 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/hungtasktimeoutsecs" disables this message. [ 3147.238999] task:kworker/u321:0 state:D stack: 0 pid: 7 ppid: 2 flags:0x00000008 [ 3147.248045] Workqueue: hclge hclgeservicetask [hclge] [ 3147.253957] Call trace: [ 3147.257093] __switch_to+0x7c/0xbc [ 3147.261183] __schedule+0x338/0x6f0 [ 3147.265357] schedule+0x50/0xe0 [ 3147.269185] schedulepreemptdisabled+0x18/0x24 [ 3147.274488] __mutex_lock.constprop.0+0x1d4/0x5dc [ 3147.279880] __mutexlockslowpath+0x1c/0x30 [ 3147.284839] mutexlock+0x50/0x60 [ 3147.288841] rtnllock+0x20/0x2c [ 3147.292759] hclgeresetprepare+0x68/0x90 [hclge] [ 3147.298239] hclgeresetsubtask+0x88/0xe0 [hclge] [ 3147.303718] hclgeresetservicetask+0x84/0x120 [hclge] [ 3147.309718] hclgeservicetask+0x2c/0x70 [hclge] [ 3147.315109] processonework+0x1d0/0x490 [ 3147.319805] workerthread+0x158/0x3d0 [ 3147.324240] kthread+0x108/0x13c [ 3147.328154] retfromfork+0x10/0x18

In externellb process, the hns3 driver call napidisable() first, then the reset happen, then the restore process of the externellb will fail, and will not call napienable(). When doing externellb again, napidisable() will be double call, cause a deadlock of rtnl_lock().

This patch use the HNS3NICSTATEDOWN state to protect the calling of napidisable() and napienable() in externellb process, just as the usage in ndostop() and ndostart().

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54000.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
85fc1d802edf36123ae1bd0a13892bb3772c197f
Fixed
d9f609cb50ebab4aa6341112f406bf9d3928ac81
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
04b6ba143521f4485b7f2c36c655b262a79dae97
Fixed
743f7c1762e098048ede8cdf8c89a118f8d12391
Fixed
ef2d6bf9695669d31ece9f2ef39dec84874a87c7
Fixed
ac6257a3ae5db5193b1f19c268e4f72d274ddb88

Affected versions

v6.*
v6.0
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.1.1
v6.1.10
v6.1.11
v6.1.12
v6.1.13
v6.1.14
v6.1.15
v6.1.16
v6.1.17
v6.1.18
v6.1.19
v6.1.2
v6.1.20
v6.1.21
v6.1.22
v6.1.23
v6.1.24
v6.1.25
v6.1.26
v6.1.27
v6.1.28
v6.1.29
v6.1.3
v6.1.30
v6.1.31
v6.1.32
v6.1.33
v6.1.34
v6.1.35
v6.1.36
v6.1.37
v6.1.38
v6.1.39
v6.1.4
v6.1.40
v6.1.41
v6.1.42
v6.1.43
v6.1.44
v6.1.45
v6.1.5
v6.1.6
v6.1.7
v6.1.8
v6.1.9
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.4.1
v6.4.10
v6.4.2
v6.4.3
v6.4.4
v6.4.5
v6.4.6
v6.4.7
v6.4.8
v6.4.9
v6.5-rc1
v6.5-rc2
v6.5-rc3
v6.5-rc4

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54000.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.1.0
Fixed
6.1.46
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.4.11

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-54000.json"