KernelScan.io

HIGH

net/sched QFQ UAF

CVE-2026-22999

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.6HIGH

01

In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_qfq: do not free existing class in qfq_change_class() Fixes qfq_change_class() error case. cl->qdisc and cl should only be freed if a new class and qdisc were allocated, or we risk various UAF.

02

Engine v0.2.0

Risk summary

A use-after-free vulnerability in the QFQ traffic scheduler allows local attackers with CAP_NET_ADMIN to cause kernel crashes or potentially execute arbitrary code. The bug occurs when modifying existing QFQ classes through netlink, incorrectly freeing objects still in use.

Affectednet/sched/sch_qfq.c (QFQ traffic scheduler)

Vulnerability analysis

The qfq_change_class() function incorrectly frees existing class objects and their associated qdiscs in error paths, even when modifying existing classes rather than creating new ones. This creates a use-after-free condition where freed memory may still be referenced elsewhere in the kernel. The fix adds a conditional check to only free objects when creating new classes, preventing the premature deallocation. Attack surface is local through TC netlink sockets requiring CAP_NET_ADMIN capability, which is obtainable in user namespaces on default kernels.

03

BranchFixed inPatch commit
5.105.10.2492a64fb9b47af
5.155.15.199cff6cd703f41
6.16.1.162f06f7635499b
6.126.12.67362e269bb03f
6.186.18.7e9d8f11652fa
6.66.6.1220a234660dc70
mainline6.193879cffd9d07