CVE-2026-64530: Linux kernel · net/sched: cls_api: Handle TC_ACT_CONSUMED in tcf_qevent_handle
Affects Linux kernelSource CVE Database V5
Not known to be exploited · CVSS 9.8 Critical · fixed in f42e8134a3a1074b834a574d404352f867ba994a : patch Linux kernel as a priority.
Data as of 26 Oct 2026, 13:47 UTC
- EPSS
- 0.6% chance of exploitation in 30 days – higher than 51% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- CISA SSVC
- Exploitation
- No evidence of active exploitation and no public proof of concept
- Automatable
- Attackers can reliably automate steps 1–4 of the kill chain
- Technical impact
- Total control over the software or total information disclosure
CISA SSVC assessment, 2026-10-16.
- Patch
- Available – fixed in f42e8134a3a1074b834a574d404352f867ba994a, e1270e69dcf2c3512c453484178f2e9dc0db3f05, e28aedab9488343924d227b5a896faed67ce84d5 +8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 26 Jul 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in– |
Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_api: Handle TC_ACT_CONSUMED in tcf_qevent_handle tcf_classify() can return TC_ACT_CONSUMED while the skb is held by the defragmentation engine (e.g. act_ct on out-of-order fragments). When that happens the skb is no longer owned by the caller and must not be touched again. tcf_qevent_handle() did not handle TC_ACT_CONSUMED: it fell through the switch and returned the skb to the caller as if classification had passed. The only qdisc that wires up qevents today is RED, via three call sites (qe_mark on RED_PROB_MARK/HARD_MARK, qe_early_drop on congestion_drop) red_enqueue() was continuing to operate on an skb it no longer owns in this case -- enqueueing it, dropping it, or updating statistics. Resulting in a UAF. tc qdisc add dev eth0 root handle 1: red ... qevent early_drop block 10 tc filter add block 10 ... action ct (with ct defrag enabled and traffic that produces out-of-order fragments, e.g. a fragmented UDP stream) Handle TC_ACT_CONSUMED in tcf_qevent_handle() the same way the ingress and egress fast paths do: treat it as stolen and return NULL without touching the skb. Unlike the TC_ACT_STOLEN case, the skb must not be dropped/freed here, as it is no longer owned by us.
References
- git.kernel.org/stable/c/5ed3d6f85991656667059d3fa5a1d683ac58c447 (opens in a new tab)
- git.kernel.org/stable/c/f42e8134a3a1074b834a574d404352f867ba994a (opens in a new tab)
- git.kernel.org/stable/c/447d493034a9cf7bf13a2abac86d0573d907ec2f (opens in a new tab)
- git.kernel.org/stable/c/e1270e69dcf2c3512c453484178f2e9dc0db3f05 (opens in a new tab)
- git.kernel.org/stable/c/2140c2f3f2e7b066e1ae616ede8856cafd8015e9 (opens in a new tab)
- git.kernel.org/stable/c/e28aedab9488343924d227b5a896faed67ce84d5 (opens in a new tab)
- git.kernel.org/stable/c/a8a02897f2b479127db261de05cbf0c28b98d159 (opens in a new tab)