Vulnerability · Published May 21, 2024 · Assigned by Linux
CVE-2021-47400net: hns3: do not allow call hns3_nic_net_open repeatedly
High 7.8
In plain English
A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 17% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
In the Linux kernel, the following vulnerability has been resolved: net: hns3: do not allow call hns3_nic_net_open repeatedly hns3_nic_net_open() is not allowed to called repeatly, but there is no checking for this. When doing device reset and setup tc concurrently, there is a small oppotunity to call hns3_nic_net_open repeatedly, and cause kernel bug by calling napi_enable twice. The calltrace information is like below: [ 3078.222780] ------------[ cut here ]------------ [ 3078.230255] kernel BUG at net/core/dev.c:6991! [ 3078.236224] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [ 3078.243431] Modules linked in: hns3 hclgevf hclge hnae3 vfio_iommu_type1 vfio_pci vfio_virqfd vfio pv680_mii(O) [ 3078.258880] CPU: 0 PID: 295 Comm: kworker/u8:5 Tainted: G O 5.14.0-rc4+ #1 [ 3078.269102] Hardware name: , BIOS KpxxxFPGA 1P B600 V181 08/12/2021 [ 3078.276801] Workqueue: hclge hclge_service_task [hclge] [ 3078.288774] pstate: 60400009 (nZCv daif +PAN -UAO -TCO BTYPE=--) [ 3078.296168] pc : napi_enable+0x80/0x84 tc qdisc sho[w 3d0e7v8 .e3t0h218 79] lr : hns3_nic_net_open+0x138/0x510 [hns3] [ 3078.314771] sp : ffff8000108abb20 [ 3078.319099] x29: ffff8000108abb20 x28: 0000000000000000 x27: ffff0820a8490300 [ 3078.329121] x26: 0000000000000001 x25: ffff08209cfc6200 x24: 0000000000000000 [ 3078.339044] x23: ffff0820a8490300 x22: ffff08209cd76000 x21: ffff0820abfe3880 [ 3078.349018] x20: 0000000000000000 x19: ffff08209cd76900 x18: 0000000000000000 [ 3078.358620] x17: 0000000000000000 x16: ffffc816e1727a50 x15: 0000ffff8f4ff930 [ 3078.368895] x14: 0000000000000000 x13: 0000000000000000 x12: 0000259e9dbeb6b4 [ 3078.377987] x11: 0096a8f7e764eb40 x10: 634615ad28d3eab5 x9 : ffffc816ad8885b8 [ 3078.387091] x8 : ffff08209cfc6fb8 x7 : ffff0820ac0da058 x6 : ffff0820a8490344 [ 3078.396356] x5 : 0000000000000140 x4 : 0000000000000003 x3 : ffff08209cd76938 [ 3078.405365] x2 : 0000000000000000 x1 : 0000000000000010 x0 : ffff0820abfe38a0 [ 3078.414657] Call trace: [ 3078.418517] napi_enable+0x80/0x84 [ 3078.424626] hns3_reset_notify_up_enet+0x78/0xd0 [hns3] [ 3078.433469] hns3_reset_notify+0x64/0x80 [hns3] [ 3078.441430] hclge_notify_client+0x68/0xb0 [hclge] [ 3078.450511] hclge_reset_rebuild+0x524/0x884 [hclge] [ 3078.458879] hclge_reset_service_task+0x3c4/0x680 [hclge] [ 3078.467470] hclge_service_task+0xb0/0xb54 [hclge] [ 3078.475675] process_one_work+0x1dc/0x48c [ 3078.481888] worker_thread+0x15c/0x464 [ 3078.487104] kthread+0x160/0x170 [ 3078.492479] ret_from_fork+0x10/0x18 [ 3078.498785] Code: c8027c81 35ffffa2 d50323bf d65f03c0 (d4210000) [ 3078.506889] ---[ end trace 8ebe0340a1b0fb44 ]--- Once hns3_nic_net_open() is excute success, the flag HNS3_NIC_STATE_DOWN will be cleared. So add checking for this flag, directly return when HNS3_NIC_STATE_DOWN is no set.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux:9 | bpftool | 7.3.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-debug | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-debug-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-debug-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-debug-devel-matched | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-debug-modules | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-debug-modules-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-debug-modules-extra | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-devel-matched | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-modules | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-modules-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-64k-modules-extra | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-abi-stablelists | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-cross-headers | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug-devel-matched | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug-modules | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug-modules-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug-modules-extra | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-debug-uki-virt | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-devel-matched | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-doc | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-headers | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-modules | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-modules-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-modules-extra | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-debug | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-debug-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-debug-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-debug-modules | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-debug-modules-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-debug-modules-extra | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-modules | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-modules-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-rt-modules-extra | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-tools | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-tools-libs | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-tools-libs-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-uki-virt | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-zfcpdump | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-zfcpdump-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-zfcpdump-devel | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-zfcpdump-devel-matched | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-zfcpdump-modules | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-zfcpdump-modules-core | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | kernel-zfcpdump-modules-extra | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | libperf | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | perf | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | python3-perf | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | rtla | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| AlmaLinux:9 | rv | 5.14.0-427.24.1.el9_4 | ALSA-2024:4349 |
| Debian:12 | linux | 5.14.12-1 | DEBIAN-CVE-2021-47400 |
| Debian:13 | linux | 5.14.12-1 | DEBIAN-CVE-2021-47400 |
| Debian:14 | linux | 5.14.12-1 | DEBIAN-CVE-2021-47400 |
| Rocky Linux:9 | kernel | 0:5.14.0-427.24.1.el9_4.cloud.3.0 | RXSA-2024:4349 |
| Rocky Linux:9 | kernel | 0:5.14.0-427.24.1.el9_4 | RLSA-2024:4349 |
| Ubuntu:22.04:LTS | linux-allwinner-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-aws-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-aws-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-azure-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-azure-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-azure-fde-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-azure-fde-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-gcp-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-gcp-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-hwe-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-hwe-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-nvidia-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-oem-5.17 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-oem-6.0 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-oem-6.1 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:24.04:LTS | linux-raspi-realtime | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-realtime | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-riscv | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-riscv-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-starfive-5.19 | no fix listed | UBUNTU-CVE-2021-47400 |
| Ubuntu:22.04:LTS | linux-starfive-6.2 | no fix listed | UBUNTU-CVE-2021-47400 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | e888402789b9db5de4fcda361331d66dbf0cd9fd – before 5a31d4e73ada8022427b69b10fd1f01a6a8d4b3de888402789b9db5de4fcda361331d66dbf0cd9fd – before f8ba689cb69523144d10606096ef686002dd7285e888402789b9db5de4fcda361331d66dbf0cd9fd – before 3dac38bdce7932901b9f0b71c62331852c809e61e888402789b9db5de4fcda361331d66dbf0cd9fd – before 5b09e88e1bf7fe86540fab4b5f3eece8abead39e |
| Linux | Linux | 5.0 |