Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-74620

CVE-2026-74620: Linux Kernel Privilege Escalation Vulnerability

CVE-2026-74620 is a privilege escalation flaw in the Linux kernel network scheduler that allows improper control actions causing memory leaks. This post explains its technical details, affected versions, and mitigation.

Published:

CVE-2026-74620 Overview

CVE-2026-74620 is a memory leak vulnerability in the Linux kernel's traffic control subsystem. The flaw affects the act_gact and act_police traffic control actions in net/sched. User space can supply a fallback control action value that bypasses the primary range check performed by tcf_action_check_ctrlact(). Specifically, the TCA_GACT_PROB.paction and TCA_POLICE_RESULT attributes accept TC_ACT_CONSUMED, a kernel-internal verdict outside the UAPI value range. When returned, this verdict tells callers the action took ownership of the sk_buff, so no code path frees it. The result is an unbounded sk_buff leak on every packet traversing the affected filter chain.

Critical Impact

A local user with CAP_NET_ADMIN can trigger an unbounded kernel memory leak, exhausting system memory and causing denial of service on any traffic passing through the filter chain.

Affected Products

  • Linux kernel with CONFIG_NET_SCHED enabled prior to the fix
  • Kernel versions containing commit 720f22fed81b ("net: sched: refactor reinsert action") through v7.2-rc6
  • Distributions shipping vulnerable stable kernel branches

Discovery Timeline

  • 2026-08-22 - CVE-2026-74620 published to NVD
  • 2026-08-23 - Last updated in NVD database

Technical Details for CVE-2026-74620

Vulnerability Analysis

The vulnerability resides in the Linux traffic control action framework. The helper tcf_action_check_ctrlact() enforces the range action <= TC_ACT_VALUE_MAX on the primary control action, where TC_ACT_VALUE_MAX equals TC_ACT_TRAP. This check prevents user space from setting kernel-internal verdicts through the primary action path.

However, act_gact and act_police each accept a second, independent control action from user space through TCA_GACT_PROB.paction and TCA_POLICE_RESULT. These values never reach tcf_action_check_ctrlact(). The existing validation only rejects TC_ACT_GOTO_CHAIN, allowing any other value to be stored and returned verbatim.

Root Cause

When commit 720f22fed81b introduced TC_ACT_CONSUMED (value TC_ACT_VALUE_MAX + 1), the earlier goto-chain guards in commits 9469f375ab09 and c08f5ed5d625 were not widened to reject the new verdict. TC_ACT_CONSUMED signals that the action assumed ownership of the skb. Callers sch_handle_ingress(), sch_handle_egress(), and tcf_qevent_handle() deliberately skip freeing the buffer for this verdict, producing one leaked sk_buff per packet.

Attack Vector

Exploitation is deterministic and requires only the ability to create traffic control filters, typically CAP_NET_ADMIN. For act_gact, setting tcfg_pval = 1 causes gact_determ() to return the fallback for every packet. For act_police, omitting a rate leaves tcfp_mtu = ~0, so tcf_police_mtu_check() always passes. An attacker configures the fallback action to TC_ACT_CONSUMED and every packet traversing the chain leaks a 232-byte skbuff_head_cache object plus its 704-byte data buffer, as confirmed by kmemleak on v7.2-rc6.

Refer to the kernel commit 5344e01 and kernel commit 92f00f1 for the corrective patches.

Detection Methods for CVE-2026-74620

Indicators of Compromise

  • Steady growth in skbuff_head_cache slab consumption reported by /proc/slabinfo without a matching traffic anomaly.
  • kmemleak reports referencing leaked sk_buff allocations tied to net/sched action paths.
  • tc filter rules configured with act_gact or act_police whose fallback control action decodes to value 8 (TC_ACT_CONSUMED).

Detection Strategies

  • Audit installed traffic control policies with tc -s filter show and inspect fallback verdicts in act_gact and act_police rules.
  • Correlate kernel memory pressure events with recent tc netlink activity from unprivileged namespaces or containers.
  • Enable kmemleak (CONFIG_DEBUG_KMEMLEAK) on test hosts to observe reproducible leaks when malicious filters are installed.

Monitoring Recommendations

  • Track slab allocator metrics for skbuff_head_cache and data buffer pools over time to catch unbounded growth.
  • Log all RTM_NEWTFILTER and RTM_NEWACTION netlink operations along with the requesting UID and network namespace.
  • Alert on containers or user namespaces holding CAP_NET_ADMIN that install act_gact or act_police rules.

How to Mitigate CVE-2026-74620

Immediate Actions Required

  • Apply the upstream kernel patches that introduce tcf_action_valid() and enforce the range check on both fallback control actions.
  • Restrict CAP_NET_ADMIN in untrusted containers and user namespaces to prevent installation of malicious tc filters.
  • Review existing tc configurations and remove any act_gact or act_police rules with fallback verdicts outside the documented UAPI range.

Patch Information

The fix factors the existing range test out of tcf_action_check_ctrlact() into a new helper tcf_action_valid() and applies it to both fallback control action sites. Stable-tree backports are available in commits 2e8df8c, 5344e01, 5f038af, 6bcb883, 725efc2, 883b56a, 92f00f1, and efa58ae. After patching, both offending configurations are rejected with -EINVAL.

Workarounds

  • Disable unprivileged user namespaces where feasible using sysctl kernel.unprivileged_userns_clone=0 on distributions that support the toggle.
  • Drop CAP_NET_ADMIN from container profiles that do not require traffic control configuration, for example through seccomp or Kubernetes securityContext.
  • Remove or replace any act_gact filter using tcfg_pval = 1 and any act_police filter configured without a rate until the kernel is patched.

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.