CVE-2024-50296

net: hns3: fix kernel crash when uninstalling driver

MEDIUM
5.5
CVSS Score
Published: November 19, 2024 at 01:30 AM UTC
Updated: June 17, 2026 at 08:04 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.3%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: net: hns3: fix kernel crash when uninstalling driver When the driver is uninstalled and the VF is disabled concurrently, a kernel crash occurs. The reason is that the two actions call function pci_disable_sriov(). The num_VFs is checked to determine whether to release the corresponding resources. During the second calling, num_VFs is not 0 and the resource release function is called. However, the corresponding resource has been released during the first invoking. Therefore, the problem occurs: [15277.839633][T50670] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020 ... [15278.131557][T50670] Call trace: [15278.134686][T50670] klist_put+0x28/0x12c [15278.138682][T50670] klist_del+0x14/0x20 [15278.142592][T50670] device_del+0xbc/0x3c0 [15278.146676][T50670] pci_remove_bus_device+0x84/0x120 [15278.151714][T50670] pci_stop_and_remove_bus_device+0x6c/0x80 [15278.157447][T50670] pci_iov_remove_virtfn+0xb4/0x12c [15278.162485][T50670] sriov_disable+0x50/0x11c [15278.166829][T50670] pci_disable_sriov+0x24/0x30 [15278.171433][T50670] hnae3_unregister_ae_algo_prepare+0x60/0x90 [hnae3] [15278.178039][T50670] hclge_exit+0x28/0xd0 [hclge] [15278.182730][T50670] __se_sys_delete_module.isra.0+0x164/0x230 [15278.188550][T50670] __arm64_sys_delete_module+0x1c/0x30 [15278.193848][T50670] invoke_syscall+0x50/0x11c [15278.198278][T50670] el0_svc_common.constprop.0+0x158/0x164 [15278.203837][T50670] do_el0_svc+0x34/0xcc [15278.207834][T50670] el0_svc+0x20/0x30 For details, see the following figure. rmmod hclge disable VFs ---------------------------------------------------- hclge_exit() sriov_numvfs_store() ... device_lock() pci_disable_sriov() hns3_pci_sriov_configure() pci_disable_sriov() sriov_disable() sriov_disable() if !num_VFs : if !num_VFs : return; return; sriov_del_vfs() sriov_del_vfs() ... ... klist_put() klist_put() ... ... num_VFs = 0; num_VFs = 0; device_unlock(); In this patch, when driver is removing, we get the device_lock() to protect num_VFs, just like sriov_numvfs_store().

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 5.14.154.19.214 ≤ v < 4.19.3245.10.76 ≤ v < 5.10.2305.14.15 ≤ v < 5.155.15 ≤ v < 5.15.1725.15 ≤ v < 6.1.1175.15 ≤ v < 6.11.85.15 ≤ v < 6.125.15 ≤ v < 6.6.615.16 ≤ v < 6.1.1175.4.156 ≤ v < 5.4.2866.2 ≤ v < 6.6.616.7 ≤ v < 6.11.80dd8a25f355b4df2d41c08df1716340854c7d4c54.19.2145.10.765.14.155.4.1566.12 rc16.12 rc26.12 rc36.12 rc46.12 rc56.12 rc69b5a29f0acefa3eb1dbe2fa302b393eeff64d933b06ad258e01389ca3ff13bc180f3fcd6a608f1cdc4b64011e458aa2b246cd4e42012cfd83d2d9a5cd36b15e3e7b5937cb1f6ac590a85facc3a320642
Vendor states this is fixed in 590a4b2d4e0b73586e88bce9b8135b593355ec09 (fixed)
Vendor states this is fixed in 719edd9f3372ce7fb3b157647c6658672946874b (fixed)
Vendor states this is fixed in 76b155e14d9b182ce83d32ada2d0d7219ea8c8dd (fixed)
Vendor states this is fixed in 7ae4e56de7dbd0999578246a536cf52a63f4056d (fixed)
Vendor states this is fixed in a0df055775f30850c0da8f7dab40d67c0fd63908 (fixed)
Vendor states this is fixed in b5c94e4d947d15d521e935ff10c5a22a7883dea5 (fixed)
Vendor states this is fixed in df3dff8ab6d79edc942464999d06fbaedf8cdd18 (fixed)
Vendor states this is fixed in e36482b222e00cc7aeeea772fc0cf2943590bc4d (fixed)
Vendor states this is fixed in 4.19.324 (unaffected)
Vendor states this is fixed in 5.10.230 (unaffected)
Vendor states this is fixed in 5.15 (unaffected)
Vendor states this is fixed in 5.15.172 (unaffected)
Vendor states this is fixed in 5.4.286 (unaffected)
Vendor states this is fixed in 6.1.117 (unaffected)
Vendor states this is fixed in 6.11.8 (unaffected)
Vendor states this is fixed in 6.12 (unaffected)
Vendor states this is fixed in 6.6.61 (unaffected)

References (10)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/590a4b2d4e0b73586e88bce9b8135b593355ec09
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/719edd9f3372ce7fb3b157647c6658672946874b
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/76b155e14d9b182ce83d32ada2d0d7219ea8c8dd
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/7ae4e56de7dbd0999578246a536cf52a63f4056d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/a0df055775f30850c0da8f7dab40d67c0fd63908
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b5c94e4d947d15d521e935ff10c5a22a7883dea5
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/df3dff8ab6d79edc942464999d06fbaedf8cdd18
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/e36482b222e00cc7aeeea772fc0cf2943590bc4d

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

5.5MEDIUMCISA-ADP
Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-476

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card