Linux Kernel, Race Condition in NAPI Registration, CVE-2025-22006 (Critical)

How the Vulnerability Works

The CVE-2025-22006 vulnerability in the Linux kernel’s TI AM65-CPSW Ethernet driver occurs due to incorrect sequencing of NAPI (New API) registration and interrupt handling. When the driver registers interrupts for TX/RX DMA channels before initializing their corresponding NAPI contexts, a race condition can occur. During high network traffic, the interrupt handler may trigger before NAPI structures are ready, leading to a NULL pointer dereference. This manifests as random kernel crashes since it depends on traffic timing. The flaw exists in the am65_cpsw_nuss_probe() function where interrupt request (request_irq()) is called prior to netif_napi_add().

DailyCVE Form:

Platform: Linux Kernel
Version: v5.10-v6.6
Vulnerability: Race Condition
Severity: Critical
Date: 04/10/2025

What Undercode Say:

Exploitation:

Crash trigger (requires packet flood)
hping3 -S --flood -p 80 <target_ip>
Kernel panic observed via dmesg
dmesg | grep "Unable to handle kernel NULL pointer"

Protection:

// Patch verification
git show c5d2b6fa3a8e | grep am65_cpsw_nuss
// Check loaded module
lsmod | grep am65_cpsw

Mitigation Commands:

Temporary workaround
echo 0 > /proc/irq/<irq_num>/smp_affinity
Kernel module blacklist
echo "blacklist am65_cpsw_nuss" > /etc/modprobe.d/disable_cpsw.conf

Debugging:

// Kernel tracepoint
trace_event_irq_handler_entry()
trace_event_irq_handler_exit()

Patch Analysis:

- ret = request_irq(irq, am65_cpsw_nuss_rx_irq, 0, dev_name(dev), priv);
+ netif_napi_add(ndev, &priv->napi_rx, am65_cpsw_nuss_rx_poll, 64);
+ ret = request_irq(irq, am65_cpsw_nuss_rx_irq, 0, dev_name(dev), priv);

References:

Reported By: https://nvd.nist.gov/vuln/detail/CVE-2025-22006
Extra Source Hub:
Undercode

Join Our Cyber World:

💬 Whatsapp | 💬 TelegramFeatured Image

Scroll to Top