HIGH
net/macb SKB Locking
CVE-2026-31563
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
KernelScan AI7.3HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: net: macb: Use dev_consume_skb_any() to free TX SKBs The napi_consume_skb() function is not intended to be called in an IRQ disabled context. However, after commit 6bc8a5098bf4 ("net: macb: Fix tx_ptr_lock locking"), the freeing of TX SKBs is performed with IRQs disabled. To resolve the following call trace, use dev_consume_skb_any() for freeing TX SKBs: WARNING: kernel/softirq.c:430 at __local_bh_enable_ip+0x174/0x188, CPU#0: ksoftirqd/0/15 Modules linked in: CPU: 0 UID: 0 PID: 15 Comm: ksoftirqd/0 Not tainted 7.0.0-rc4-next-20260319-yocto-standard-dirty #37 PREEMPT Hardware name: ZynqMP ZCU102 Rev1.1 (DT) pstate: 200000c5 (nzCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : __local_bh_enable_ip+0x174/0x188 lr : local_bh_enable+0x24/0x38 sp : ffff800082b3bb10 x29: ffff800082b3bb10 x28: ffff0008031f3c00 x27: 000000000011ede0 x26: ffff000800a7ff00 x25: ffff800083937ce8 x24: 0000000000017a80 x23: ffff000803243a78 x22: 0000000000000040 x21: 0000000000000000 x20: ffff000800394c80 x19: 0000000000000200 x18: 0000000000000001 x17: 0000000000000001 x16: ffff000803240000 x15: 0000000000000000 x14: ffffffffffffffff x13: 0000000000000028 x12: ffff000800395650 x11: ffff8000821d1528 x10: ffff800081c2bc08 x9 : ffff800081c1e258 x8 : 0000000100000301 x7 : ffff8000810426ec x6 : 0000000000000000 x5 : 0000000000000001 x4 : 0000000000000001 x3 : 0000000000000000 x2 : 0000000000000008 x1 : 0000000000000200 x0 : ffff8000810428dc Call trace: __local_bh_enable_ip+0x174/0x188 (P) local_bh_enable+0x24/0x38 skb_attempt_defer_free+0x190/0x1d8 napi_consume_skb+0x58/0x108 macb_tx_poll+0x1a4/0x558 __napi_poll+0x50/0x198 net_rx_action+0x1f4/0x3d8 handle_softirqs+0x16c/0x560 run_ksoftirqd+0x44/0x80 smpboot_thread_fn+0x1d8/0x338 kthread+0x120/0x150 ret_from_fork+0x10/0x20 irq event stamp: 29751 hardirqs last enabled at (29750): [<ffff8000813be184>] _raw_spin_unlock_irqrestore+0x44/0x88 hardirqs last disabled at (29751): [<ffff8000813bdf60>] _raw_spin_lock_irqsave+0x38/0x98 softirqs last enabled at (29150): [<ffff8000800f1aec>] handle_softirqs+0x504/0x560 softirqs last disabled at (29153): [<ffff8000800f2fec>] run_ksoftirqd+0x44/0x80
02KernelScan AI Analysis
Risk summary
Systems using Cadence MACB Ethernet controllers may experience kernel warnings and potential system instability when transmitting network packets. A remote attacker can trigger this condition by sending network traffic that induces the target to transmit, causing improper function calls in IRQ-disabled contexts that lead to kernel warnings and potential crashes.
Vulnerability analysis
The root cause is a context mismatch where napi_consume_skb() is called while IRQs are disabled. After commit 6bc8a5098bf4 changed the locking mechanism to use spin_lock_irqsave (disabling IRQs), the TX completion path continued using napi_consume_skb() which expects to run with IRQs enabled for proper bottom-half handling. The fix replaces napi_consume_skb() with dev_consume_skb_any(), which is safe to call in any context including IRQ-disabled sections. This affects systems with Cadence MACB Ethernet controllers during normal network transmission operations. Because the MACB driver handles network traffic, an unauthenticated remote attacker can trigger the vulnerable TX completion path by inducing the target to transmit packets (e.g., via ICMP, TCP, or other IP traffic).
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.1 | 6.1.168 | 92e7081f0c79 |
| 6.12 | 6.12.80 | 984350b37372 |
| 6.17 | 6.17 | f4bc91398b57 |
| 6.18 | 6.18.21 | ca4d05afb468 |
| 6.19 | 6.19.11 | 647b8a2fe474 |
| 6.6 | 6.6.131 | 78c8b090a3d5 |
| mainline | 7.0 | — |