CVE-2026-53297 Overview
CVE-2026-53297 is a null pointer dereference vulnerability in the Linux kernel's Microsoft Azure Network Adapter (MANA) network driver. The flaw exists in the mana_remove() function, which fails to guard against double invocation during power management (PM) resume failure paths. When mana_attach() returns an error during resume, mana_probe() calls mana_remove(), which nullifies gd->gdma_context and gd->driver_data. A subsequent driver unbind triggers mana_remove() a second time, dereferencing a NULL gc pointer and causing a kernel panic.
Critical Impact
A local trigger during PM resume failure can cause a kernel panic through NULL pointer dereference, resulting in denial of service on affected systems running the MANA network driver.
Affected Products
- Linux kernel with the net/mana driver enabled
- Microsoft Azure Network Adapter (MANA) driver in vulnerable kernel versions
- Systems using MANA networking with power management resume paths
Discovery Timeline
- 2026-06-26 - CVE-2026-53297 published to NVD
- 2026-06-30 - Last updated in NVD database
Technical Details for CVE-2026-53297
Vulnerability Analysis
The vulnerability resides in the MANA driver's device teardown logic. When PM resume fails during mana_probe(), the recovery path invokes mana_remove() to tear down partially initialized state. This teardown sets gd->gdma_context and gd->driver_data to NULL. However, a failed resume callback does not automatically unbind the driver from the device.
When the device is later unbound, the kernel calls mana_remove() again. The function assigns dev = gc->dev before validating that gc (the gdma context) is non-NULL. Because the prior invocation already cleared the context pointer, this second call dereferences a NULL pointer and triggers a kernel panic.
This is a classic double-invocation flaw in device driver cleanup paths, categorized as a NULL pointer dereference [CWE-476]. Similar patterns have historically appeared across Linux subsystems where teardown functions assume single-execution semantics.
Root Cause
The root cause is missing idempotency in mana_remove(). The function assumes it will be called exactly once but does not enforce this contract. The dev = gc->dev assignment occurs before any NULL validation, so the second invocation dereferences a stale/cleared pointer.
Attack Vector
Triggering the flaw requires a PM resume failure followed by a driver unbind on a system using the MANA driver. This is primarily a reliability and denial-of-service issue rather than a remote exploitation vector. The condition typically arises on Azure virtual machines or systems using MANA where suspend/resume cycles encounter attach failures.
The vulnerability manifests during kernel driver lifecycle transitions. See the upstream commit references for the specific code paths and fix implementation.
Detection Methods for CVE-2026-53297
Indicators of Compromise
- Kernel panic messages referencing mana_remove in the call stack
- Oops or BUG reports containing NULL pointer dereference at gc->dev access
- System crashes correlated with PM suspend/resume cycles on MANA-equipped hosts
- Repeated driver unbind operations following failed resume events in kernel logs
Detection Strategies
- Inventory kernel versions across Linux fleets and compare against patched stable kernel releases containing commits 50271d7ec951, a1ddfd2c0b7a, and bbe5c3c57064.
- Monitor dmesg and journalctl -k output for panic signatures involving the MANA driver during resume operations.
- Review Azure VM host telemetry for unexpected reboots or guest crashes coinciding with maintenance events that involve suspend/resume.
Monitoring Recommendations
- Forward kernel logs to a centralized logging platform and alert on mana_remove stack traces.
- Track PM resume failures using systemd suspend/resume event logs and correlate with subsequent driver rebind attempts.
- Establish baseline crash telemetry to identify anomalous panic rates on MANA-enabled systems.
How to Mitigate CVE-2026-53297
Immediate Actions Required
- Apply the upstream Linux kernel patches that add the NULL guard to mana_remove() before executing device teardown logic.
- Update to a stable kernel release that incorporates the fix commits published on git.kernel.org.
- Avoid unnecessary suspend/resume cycles on production MANA-enabled hosts until patched kernels are deployed.
Patch Information
The fix adds an early return in mana_remove() when gdma_context or driver_data is NULL, making the second invocation harmless. The dev = gc->dev assignment is moved after the NULL guard so it cannot dereference a NULL pointer. The upstream commits are available at kernel.org commit 50271d7e, kernel.org commit a1ddfd2c, and kernel.org commit bbe5c3c5.
Workarounds
- Where patching is not immediately feasible, disable suspend/resume operations on affected hosts to avoid triggering the failure path.
- Blacklist the MANA driver on systems where it is not required, then reload only after applying patched kernels.
- Coordinate with cloud provider maintenance schedules to reduce exposure to PM resume events on Azure guests.
# Verify running kernel version and check for MANA driver presence
uname -r
lsmod | grep mana
# Review recent kernel messages for MANA-related panics
dmesg | grep -i mana
journalctl -k --since "7 days ago" | grep -i "mana_remove\|null pointer"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

