Skip to main content

Linux Kernel CVE-2026-43276

| EUVDEUVD-2026-27672 HIGH
Double Free (CWE-415)
2026-05-06 Linux GHSA-hv6m-q2m2-vxvr
7.8
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
4.7 MEDIUM

Local, privileged trigger via a rare resume-failure race (AV:L/PR:L/AC:H); observed and tagged impact is a kernel crash (A:H) with no demonstrated confidentiality/integrity loss.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
HIGH
qualitative
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
Analysis Generated
Jul 24, 2026 - 00:42 vuln.today
CVSS changed
May 08, 2026 - 19:37 NVD
7.8 (HIGH)
CVE Published
May 06, 2026 - 11:28 nvd
HIGH 7.8

DescriptionCVE.org

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

net: mana: Fix double destroy_workqueue on service rescan PCI path

While testing corner cases in the driver, a use-after-free crash was found on the service rescan PCI path.

When mana_serv_reset() calls mana_gd_suspend(), mana_gd_cleanup() destroys gc->service_wq. If the subsequent mana_gd_resume() fails with -ETIMEDOUT or -EPROTO, the code falls through to mana_serv_rescan() which triggers pci_stop_and_remove_bus_device(). This invokes the PCI .remove callback (mana_gd_remove), which calls mana_gd_cleanup() a second time, attempting to destroy the already- freed workqueue. Fix this by NULL-checking gc->service_wq in mana_gd_cleanup() and setting it to NULL after destruction.

Call stack of issue for reference: [Sat Feb 21 18:53:48 2026] Call Trace: [Sat Feb 21 18:53:48 2026] <TASK> [Sat Feb 21 18:53:48 2026] mana_gd_cleanup+0x33/0x70 [mana] [Sat Feb 21 18:53:48 2026] mana_gd_remove+0x3a/0xc0 [mana] [Sat Feb 21 18:53:48 2026] pci_device_remove+0x41/0xb0 [Sat Feb 21 18:53:48 2026] device_remove+0x46/0x70 [Sat Feb 21 18:53:48 2026] device_release_driver_internal+0x1e3/0x250 [Sat Feb 21 18:53:48 2026] device_release_driver+0x12/0x20 [Sat Feb 21 18:53:48 2026] pci_stop_bus_device+0x6a/0x90 [Sat Feb 21 18:53:48 2026] pci_stop_and_remove_bus_device+0x13/0x30 [Sat Feb 21 18:53:48 2026] mana_do_service+0x180/0x290 [mana] [Sat Feb 21 18:53:48 2026] mana_serv_func+0x24/0x50 [mana] [Sat Feb 21 18:53:48 2026] process_one_work+0x190/0x3d0 [Sat Feb 21 18:53:48 2026] worker_thread+0x16e/0x2e0 [Sat Feb 21 18:53:48 2026] kthread+0xf7/0x130 [Sat Feb 21 18:53:48 2026] ? __pfx_worker_thread+0x10/0x10 [Sat Feb 21 18:53:48 2026] ? __pfx_kthread+0x10/0x10 [Sat Feb 21 18:53:48 2026] ret_from_fork+0x269/0x350 [Sat Feb 21 18:53:48 2026] ? __pfx_kthread+0x10/0x10 [Sat Feb 21 18:53:48 2026] ret_from_fork_asm+0x1a/0x30 [Sat Feb 21 18:53:48 2026] </TASK>

AnalysisAI

Local denial of service in the Linux kernel MANA driver (Microsoft Azure Network Adapter) arises from a double destroy_workqueue on the PCI service-rescan path. When mana_serv_reset() suspends the device and mana_gd_cleanup() tears down gc->service_wq, a subsequent failed mana_gd_resume() (-ETIMEDOUT/-EPROTO) triggers pci_stop_and_remove_bus_device(), invoking mana_gd_remove()/mana_gd_cleanup() a second time on the already-freed workqueue, causing a use-after-free/double-free crash. This affects Azure guests running the MANA driver; there is no public exploit identified at time of analysis and EPSS is very low (0.02%).

Technical ContextAI

The bug lives in the MANA (Microsoft Azure Network Adapter) Ethernet driver's Gdma layer within the Linux kernel networking stack. The service/rescan flow (mana_do_service → mana_serv_reset → mana_gd_suspend → mana_gd_cleanup) destroys the shared gc->service_wq workqueue but leaves a dangling pointer. On resume failure, the driver falls through to mana_serv_rescan(), which hot-removes the PCI device; the PCI .remove callback (mana_gd_remove) calls mana_gd_cleanup() again, invoking destroy_workqueue() on freed memory. This is a classic CWE-415 Double Free / use-after-free of a kernel object, rooted in a cleanup path that is reachable twice without idempotency. The fix NULL-checks gc->service_wq in mana_gd_cleanup() and sets it to NULL after destruction to make the teardown idempotent.

RemediationAI

Vendor-released patch: upgrade to a fixed Linux stable kernel - 6.18.16, 6.19.6, or 7.0 (or later), or the equivalent distribution rebuild. On Ubuntu apply USN-8310-1 (https://ubuntu.com/security/notices/USN-8310-1); on Red Hat and SUSE apply the corresponding kernel errata as they ship the backports (fix commits fa3c2f8d9152, a9a7c3203fdc, f975a0955276). If immediate patching is not possible, the practical compensating control is to avoid triggering the vulnerable service/rescan path: refrain from operations that force MANA device reset/PCI rescan, and where the workload does not require it, unbind or blacklist the mana module (modprobe blacklist) on non-Azure or non-networking hosts - the trade-off is loss of the accelerated Azure network interface, so this is only viable where MANA is not the primary NIC. Schedule the kernel update and reboot during a maintenance window, since the fix requires a running-kernel replacement.

Vendor StatusVendor

SUSE

Severity: High
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

Share

CVE-2026-43276 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy