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

CVE-2026-74700: Linux Kernel Use-After-Free Vulnerability

CVE-2026-74700 is a use-after-free flaw in the Linux kernel network scheduler that occurs during classifier destruction, potentially causing memory corruption. This article covers technical details, impact, and mitigation.

Published:

CVE-2026-74700 Overview

CVE-2026-74700 is a use-after-free vulnerability in the Linux kernel's net/sched/cls_api.c traffic classifier subsystem. The flaw affects unlocked classifier operations where tcf_proto_destroy() runs without holding rtnl_lock. A race between two concurrent tc_new_tfilter requests creating filters of different kinds (for example, u32 and flower) in the same chain and priority can drop the last reference to a tcf_proto outside RTNL context. The resulting destroy path triggers a slab use-after-free in kernel memory. The fix acquires rtnl_lock around tp->ops->destroy() for locked classifiers whenever RTNL is not already held.

Critical Impact

Local attackers with CAP_NET_ADMIN in a user or network namespace can trigger a kernel use-after-free that leads to memory corruption, privilege escalation, or denial of service.

Affected Products

  • Linux kernel net/sched subsystem (cls_api.c)
  • Distributions shipping affected upstream kernels prior to the referenced stable commits
  • Systems exposing traffic control (tc) filter management to unprivileged namespaces

Discovery Timeline

  • 2026-08-22 - CVE-2026-74700 published to NVD
  • 2026-08-25 - Last updated in NVD database

Technical Details for CVE-2026-74700

Vulnerability Analysis

The vulnerability lives in the classifier API path tc_new_tfilter() in net/sched/cls_api.c. Linux traffic control supports unlocked classifier operations to improve scalability, meaning multiple filter creation requests can proceed concurrently without holding rtnl_lock. A narrow race window allows a tcf_proto structure created by one thread to be referenced and later destroyed by a completely unrelated thread that never acquired RTNL.

When two threads race to install filters of different kind values in the same chain and priority, one thread wins the tcf_chain_tp_insert_unique() insertion. The second thread performs tcf_chain_tp_find(), sees the winner's tcf_proto, takes a reference, then rejects it on the kind-mismatch check. The rejecting thread calls tcf_proto_put() on the foreign tcf_proto. If the original creator has already released its own references through its error path, the foreign thread drops the refcount to zero and invokes tp->ops->destroy() outside RTNL. This produces a KASAN slab-use-after-free during u32_init / u32_destroy teardown.

Root Cause

The root cause is asymmetric locking assumptions between classifier reference counting and destroy callbacks. Classifier destroy() implementations for u32, flow, bpf, cgroup, route, basic, fw, and mall assume RTNL is held or ignore the rtnl_held parameter. Reference release from an unrelated unlocked request violates this assumption.

Attack Vector

Exploitation requires local access with the ability to issue tc filter add netlink messages, typically via CAP_NET_ADMIN inside a user namespace. An attacker scripts concurrent RTM_NEWTFILTER requests with mismatched kind values against the same chain and priority to widen the race window. Successfully triggering the use-after-free enables kernel memory corruption suitable for local privilege escalation.

No verified public exploit code is available. See the upstream kernel fix commit for the exact code paths involved.

Detection Methods for CVE-2026-74700

Indicators of Compromise

  • KASAN reports referencing slab-use-after-free in u32_init, u32_destroy, tcf_proto_destroy, or tcf_proto_put on the call stack
  • Unexpected kernel oops or panic messages originating in net/sched/cls_api.c around offsets near tc_new_tfilter
  • Auditd records showing high-frequency, concurrent tc filter add operations from a single non-root UID inside a user namespace

Detection Strategies

  • Enable CONFIG_KASAN on test and staging kernels to surface the use-after-free directly during fuzzing or regression runs
  • Monitor dmesg and /var/log/kern.log for BUG reports mentioning cls_api, cls_u32, or cls_flower destroy paths
  • Alert on netlink message rate anomalies for RTM_NEWTFILTER from unprivileged user namespaces

Monitoring Recommendations

  • Ingest kernel logs into a central SIEM and create rules for KASAN and Oops signatures involving tcf_proto_destroy
  • Track unusual unshare -Urn or containerized workloads issuing large volumes of tc commands
  • Correlate kernel crashes with process ancestry to identify potential exploit attempts

How to Mitigate CVE-2026-74700

Immediate Actions Required

  • Upgrade to a stable Linux kernel that includes the fix commits referenced by the kernel.org stable tree
  • Restrict CAP_NET_ADMIN in unprivileged user namespaces on multi-tenant hosts and container platforms
  • Audit container runtimes and Kubernetes node configurations to disable unneeded user namespace creation

Patch Information

The upstream fix modifies tcf_proto_destroy() to acquire rtnl_lock around tp->ops->destroy() for locked classifiers when RTNL is not already held. Apply vendor kernel updates that backport the following commits: 34e77d8e3570, a347304b2ca1, a81f9c44d87f, b648c8a56531, and d6222af7274f.

Workarounds

  • Disable unprivileged user namespaces by setting kernel.unprivileged_userns_clone=0 where operationally acceptable
  • Apply seccomp or AppArmor policies that block the RTM_NEWTFILTER netlink route for untrusted workloads
  • Remove CAP_NET_ADMIN from container capability sets that do not require traffic control management
bash
# Configuration example: reduce local kernel attack surface
sysctl -w kernel.unprivileged_userns_clone=0
sysctl -w user.max_user_namespaces=0

# Verify running kernel includes the fix (example - adjust for your distro)
uname -r
grep -i 'cls_api' /proc/kallsyms | head

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.