In the Linux kernel, the following vulnerability has been resolved:
net/sched: act_gact, act_police: range check the fallback control action
tcf_action_check_ctrlact() range checks the primary control action:
if (!opcode) ret = action > TC_ACT_VALUE_MAX ? -EINVAL : 0;
TC_ACT_VALUE_MAX is TC_ACT_TRAP, so kernel-internal verdicts above it cannot be set that way. But act_gact and act_police each carry a second, independent control action supplied by user space that never reaches that helper - TCA_GACT_PROB.paction and TCA_POLICE_RESULT. Both only reject TC_ACT_GOTO_CHAIN, so any other value is stored verbatim and returned verbatim from the action.
In particular user space can store TC_ACT_CONSUMED, which is TC_ACT_VALUE_MAX + 1 and is deliberately not part of the UAPI value range. That verdict tells every caller the action took ownership of the skb, so nobody frees it: sch_handle_ingress(), sch_handle_egress() and tcf_qevent_handle() all deliberately skip the free for it. The result is one leaked sk_buff plus its data buffer per packet traversing the filter, unbounded, for all traffic on the chain including kernel-generated packets.
Both are trivially deterministic. act_gact clamps tcfg_pval to >= 1, so with pval = 1 gact_determ() returns the fallback for every packet. act_police has no mandatory rate, so rate = 0 leaves tcfp_mtu = ~0 and tcf_police_mtu_check() always passes.
TC_ACT_CONSUMED was added by commit 720f22fed81b ("net: sched: refactor reinsert action"), after both goto-chain guards were written: commit 9469f375ab09 ("net/sched: act_gact: disallow 'goto chain' on fallback control action") and commit c08f5ed5d625 ("net/sched: act_police: disallow 'goto chain' on fallback control action"). Neither guard was widened when the new verdict appeared.
Factor the existing range test out of tcf_action_check_ctrlact() as tcf_action_valid() and apply it to both fallbacks. The helper cannot call tcf_action_check_ctrlact() directly because that also allocates a goto_chain, which is exactly what these two sites must not do.
Reproduced on v7.2-rc6: kmemleak reports one leaked 232-byte skbuff_head_cache object plus its 704-byte data buffer per packet. With this patch both configurations are rejected with -EINVAL and kmemleak reports none.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-headersUpgrade python-perf-debuginfoUpgrade python-perfUpgrade kernel-toolsUpgrade kernel-livepatch-5.10.268-266.1092Upgrade bpftool-debuginfoUpgrade kernel-develUpgrade perfUpgrade kernel-debuginfoUpgrade kernel-tools-develUpgrade kernelUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-5.15.220-153.252Upgrade perf-debuginfoUpgrade bpftoolUpgrade kernel-debuginfo-common-aarch64 | Oct 19, 2026 | Oct 19, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel6.18-debuginfo-common-aarch64Upgrade bpftool6.18Upgrade kernel6.18Upgrade kernel6.18-modules-extra-commonUpgrade python3-perf6.18Upgrade perf6.18Upgrade perf6.18-debuginfoUpgrade kernel6.18-tools-debuginfoUpgrade kernel6.18-debuginfo-common-x86_64Upgrade microvm-kernel6.18Upgrade bpftool6.18-debuginfoUpgrade kernel6.18-debuginfoUpgrade python3-perf6.18-debuginfoUpgrade kernel6.18-toolsUpgrade kernel6.18-headersUpgrade kernel6.18-tools-develUpgrade kernel6.18-modules-extraUpgrade kernel6.18-develUpgrade kernel-livepatch-6.18.48-107.148 | Sep 30, 2026 | Aug 22, 2026 |
| Debian | — | Upgrade linux-6.12Upgrade linux | Aug 26, 2026 | Aug 26, 2026 |
| Redhat_linux | — | No solution exists | Aug 26, 2026 | Aug 22, 2026 |
| Ubuntu | — | Upgrade linux-image-5.15.0-195-lowlatencyUpgrade linux-image-5.15.0-1117-aws-fipsUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-5.15.0-1100-gkeopUpgrade linux-image-gcp-5.15Upgrade linux-image-aws-lts-22.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-generic-5.15Upgrade linux-image-5.15.0-1118-gcpUpgrade linux-image-5.15.0-1112-intel-iotgUpgrade linux-image-gcp-fips-5.15Upgrade linux-image-5.15.0-195-lowlatency-64kUpgrade linux-image-5.15.0-1123-azure-fipsUpgrade linux-image-generic-64k-5.15Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-kvmUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-gcp-fipsUpgrade linux-image-azure-cvmUpgrade linux-image-aws-fipsUpgrade linux-image-awsUpgrade linux-image-5.15.0-1112-nvidiaUpgrade linux-image-5.15.0-1080-xilinx-zynqmpUpgrade linux-image-oracle-5.15Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-azure-fde-5.15Upgrade linux-image-fipsUpgrade linux-image-5.15.0-1117-awsUpgrade linux-image-azure-fdeUpgrade linux-image-virtual-5.15Upgrade linux-image-realtimeUpgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-aws-fips-5.15Upgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-azure-fipsUpgrade linux-image-aws-64k-5.15Upgrade linux-image-oracleUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-ibm-5.15Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-198-generic-64kUpgrade linux-image-5.15.0-1109-kvmUpgrade linux-image-gkeUpgrade linux-image-5.15.0-1112-nvidia-lowlatencyUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-virtualUpgrade linux-image-oem-20.04dUpgrade linux-image-generic-lpaeUpgrade linux-image-5.15.0-1117-aws-64kUpgrade linux-image-intel-iotgUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-gcpUpgrade linux-image-lowlatency-64kUpgrade linux-image-oem-20.04Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-intelUpgrade linux-image-5.15.0-1122-azure-fdeUpgrade linux-image-nvidiaUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-azure-5.15Upgrade linux-image-realtime-5.15Upgrade linux-image-lowlatency-5.15Upgrade linux-image-5.15.0-1114-oracleUpgrade linux-image-5.15.0-1111-ibmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-nvidia-5.15Upgrade linux-image-gke-5.15Upgrade linux-image-azure-fips-5.15Upgrade linux-image-aws-5.15Upgrade linux-image-5.15.0-198-generic-lpaeUpgrade linux-image-5.15.0-1113-gkeUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-lowlatencyUpgrade linux-image-gkeopUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1123-azureUpgrade linux-image-oem-20.04cUpgrade linux-image-genericUpgrade linux-image-5.15.0-198-genericUpgrade linux-image-5.15.0-1109-intel-iot-realtimeUpgrade linux-image-5.15.0-198-fipsUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-kvm-5.15Upgrade linux-image-ibmUpgrade linux-image-fips-5.15Upgrade linux-image-azureUpgrade linux-image-5.15.0-1118-gcp-fipsUpgrade linux-image-5.15.0-1116-realtime | Oct 6, 2026 | Oct 6, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Sep 15, 2026 | Aug 22, 2026 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub