CVE-2026-63981: net/sched: act_mirred: Fix blockcast recursion bypass leading to stack overflow
In the Linux kernel, the following vulnerability has been resolved:
net/sched: actmirred: Fix blockcast recursion bypass leading to stack overflow
tcfmirredact() checks schedmirrednest against MIRREDNESTLIMIT (4) to prevent deep recursion. However, when the action uses blockcast (tcfmblockid != 0), the function returns at the tcfblockcast() call BEFORE reaching the counter increment. As a result, the recursion counter never advances and the limit check is entirely bypassed.
When two devices share a TC egress block with a mirred blockcast rule, a packet egressing on device A is mirrored to device B via blockcast; device B's egress TC re-enters tcfmirredact() via blockcast and mirrors back to A, creating an unbounded recursion loop:
tcfmirredact -> tcfblockcast -> tcfmirredtodev -> devqueuexmit -> schhandleegress -> tcfclassify -> tcfmirredact -> (repeat)
This recursion continues until the kernel stack overflows.
The bug is reachable from an unprivileged user via unshare(CLONENEWUSER | CLONENEWNET): user namespaces grant CAPNETADMIN in the new network namespace, which is sufficient to create dummy devices, attach clsact qdiscs with shared blocks, and install mirred blockcast filters.
BUG: TASK stack guard page was hit at ffffc90000b7fff8 Oops: stack guard page: 0000 [#1] SMP KASAN NOPTI CPU: 2 UID: 1000 PID: 169 Comm: poc Not tainted 7.0.0-rc7-next-20260410 RIP: 0010:xasfind+0x17/0x480 Call Trace: xafind+0x17b/0x1d0 tcfmirredact+0x640/0x1060 tcfactionexec+0x400/0x530 basicclassify+0x128/0x1d0 tcfclassify+0xd83/0x1150 tcrun+0x328/0x620 devqueuexmit+0x797/0x3100 tcfmirredtodev+0x7b1/0xf70 tcfmirredact+0x68a/0x1060 [repeating ~30+ times until stack overflow] Kernel panic - not syncing: Fatal exception in interrupt
Fix this by incrementing schedmirrednest before calling tcfblockcast() and decrementing it on return, mirroring the non-blockcast path. This ensures subsequent recursive entries see the updated counter and are correctly limited by MIRREDNESTLIMIT.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernelto a version that resolves this vulnerability.Fixed in 7.0.0-rc7-next-20260410 - Operational
Update the Linux kernel with the net/sched change “act_mirred: Fix blockcast recursion bypass leading to stack overflow” so that sched_mirred_nest is incremented before calling tcf_blockcast() and decremented on return, restoring the MIRRED_NEST_LIMIT (4) recursion limit behavior for blockcast mirrors.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-63981?
CVE-2026-63981 has a severity score of 75, indicating a high risk.
How do I fix CVE-2026-63981?
To fix CVE-2026-63981, update your Linux kernel to the patched version released after July 19, 2026.
What systems are affected by CVE-2026-63981?
CVE-2026-63981 affects various versions of the Linux kernel that utilize the net/sched subsystem.
What type of vulnerability is CVE-2026-63981?
CVE-2026-63981 is a stack overflow vulnerability caused by a blockcast recursion bypass.
What are the potential impacts of CVE-2026-63981?
The potential impacts of CVE-2026-63981 include system crashes or instability due to stack overflow.