KernelScan.io

HIGH

net/mana Channel UAF

CVE-2026-23454

CVSS 7.0 / 10.0 NVD

CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.3MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: net: mana: fix use-after-free in mana_hwc_destroy_channel() by reordering teardown A potential race condition exists in mana_hwc_destroy_channel() where hwc->caller_ctx is freed before the HWC's Completion Queue (CQ) and Event Queue (EQ) are destroyed. This allows an in-flight CQ interrupt handler to dereference freed memory, leading to a use-after-free or NULL pointer dereference in mana_hwc_handle_resp(). mana_smc_teardown_hwc() signals the hardware to stop but does not synchronize against IRQ handlers already executing on other CPUs. The IRQ synchronization only happens in mana_hwc_destroy_cq() via mana_gd_destroy_eq() -> mana_gd_deregister_irq(). Since this runs after kfree(hwc->caller_ctx), a concurrent mana_hwc_rx_event_handler() can dereference freed caller_ctx (and rxq->msg_buf) in mana_hwc_handle_resp(). Fix this by reordering teardown to reverse-of-creation order: destroy the TX/RX work queues and CQ/EQ before freeing hwc->caller_ctx. This ensures all in-flight interrupt handlers complete before the memory they access is freed.

02

Engine v0.2.0

Risk summary

Administrative attackers with root privileges can trigger a use-after-free race condition in the Microsoft Azure Network Adapter (MANA) driver during hardware channel teardown. Successful exploitation can result in kernel memory corruption, code execution, or system crashes on Azure VMs and other systems utilizing the MANA driver.

Affecteddrivers/net/ethernet/microsoft/mana/hw_channel.c (MANA network driver)

Vulnerability analysis

The vulnerability exists in mana_hwc_destroy_channel() where hwc->caller_ctx is freed before the Completion Queue (CQ) and Event Queue (EQ) are destroyed and their interrupt handlers synchronized. Because mana_smc_teardown_hwc() stops hardware without waiting for in-flight IRQ handlers, a concurrent mana_hwc_rx_event_handler() executing on another CPU can dereference freed caller_ctx and rxq->msg_buf memory in mana_hwc_handle_resp(). The patch corrects the teardown order to destroy CQ/EQ—which deregisters IRQs and synchronizes with handlers—before freeing caller_ctx. Exploiting this race requires administrative privileges to initiate driver teardown (e.g., module unload, PCI device unbind, or system shutdown) and favorable timing to hit the narrow window between kfree and IRQ synchronization.

03

BranchFixed inPatch commit
5.155.15.203b88edf12fc37
6.16.1.167e23bf444512c
6.126.12.782b001901f689
6.186.18.20afdb1533eb9c
6.196.19.1005d345719d85
6.66.6.130249e90557158
mainline7.0fa103fc8f569