HIGH
net/sched ActCt UAF
CVE-2026-23270
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI6.6MEDIUM
01Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks As Paolo said earlier [1]: "Since the blamed commit below, classify can return TC_ACT_CONSUMED while the current skb being held by the defragmentation engine. As reported by GangMin Kim, if such packet is that may cause a UaF when the defrag engine later on tries to tuch again such packet." act_ct was never meant to be used in the egress path, however some users are attaching it to egress today [2]. Attempting to reach a middle ground, we noticed that, while most qdiscs are not handling TC_ACT_CONSUMED, clsact/ingress qdiscs are. With that in mind, we address the issue by only allowing act_ct to bind to clsact/ingress qdiscs and shared blocks. That way it's still possible to attach act_ct to egress (albeit only with clsact). [1] https://lore.kernel.org/netdev/674b8cbfc385c6f37fb29a1de08d8fe5c2b0fbee.1771321118.git.pabeni@redhat.com/ [2] https://lore.kernel.org/netdev/cc6bfb4a-4a2b-42d8-b9ce-7ef6644fb22b@ovn.org/
02KernelScan AI Analysis
Risk summary
Systems with act_ct Traffic Control actions attached to egress qdiscs are vulnerable to use-after-free when processing out-of-order IP fragments. This can lead to kernel memory corruption, crashes, or potential privilege escalation. The vulnerability requires CAP_NET_ADMIN privileges to configure but can then be triggered remotely via fragmented packets.
Vulnerability analysis
The root cause is act_ct returning TC_ACT_CONSUMED while the defragmentation engine holds references to socket buffers, creating a use-after-free condition when fragments arrive out of order. Most qdiscs don't properly handle TC_ACT_CONSUMED, leading to premature packet freeing. The fix restricts act_ct to only bind with clsact/ingress qdiscs and shared blocks that correctly handle TC_ACT_CONSUMED. Attack surface includes any system with misconfigured TC rules where act_ct is attached to egress paths, reachable via network-sourced fragmented IP packets.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 5.15 | 5.15.203 | bc4e5bb52982 |
| 6.1 | 6.1.167 | fb3c380a54e3 |
| 6.12 | 6.12.77 | 380ad8b7c65e |
| 6.18 | 6.18.18 | 9deda0fcda5c |
| 6.19 | 6.19.8 | 11cb63b0d1a0 |
| 6.6 | 6.6.130 | 5a110ddcc99b |
| 6.8 | 6.8 | 524ce8b4ea8f |
| mainline | 7.0 | — |