cbcvebase.
CVE-2025-71066
published 2026-01-13

CVE-2025-71066: In the Linux kernel, the following vulnerability has been resolved: net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change…

PriorityP341high7.8CVSS 3.1
AVLACLPRLUINSUCHIHAH
EPSS
0.15%
4.5th percentile
In the Linux kernel, the following vulnerability has been resolved: net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change [email protected] says: The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`. It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis. Analysis: static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt, struct netlink_ext_ack *extack) { ... // (1) this lock is preventing .change handler (`ets_qdisc_change`) //to race with .dequeue handler (`ets_qdisc_dequeue`) sch_tree_lock(sch); for (i = nbands; i = q->nstrict && q->classes[i].qdisc->q.qlen) list_del_init(&q->classes[i].alist); qdisc_purge_queue(q->classes[i].qdisc); } WRITE_ONCE(q->nbands, nbands); for (i = nstrict; i nstrict; i++) { if (q->classes[i].qdisc->q.qlen) { // (2) the class is added to the q->active list_add_tail(&q->classes[i].alist, &q->active); q->classes[i].deficit = quanta[i]; } } WRITE_ONCE(q->nstrict, nstrict); memcpy(q->prio2band, priomap, sizeof(priomap)); for (i = 0; i nbands; i++) WRITE_ONCE(q->classes[i].quantum, quanta[i]); for (i = oldbands; i nbands; i++) { q->classes[i].qdisc = queues[i]; if (q->classes[i].qdisc != &noop_qdisc) qdisc_hash_add(q->classes[i].qdisc, true); } // (3) the qdisc is unlocked, now dequeue can be called in parallel // to the rest of .change handler sch_tree_unlock(sch); ets_offload_change(sch); for (i = q->nbands; i classes[i].qdisc); // (5) If we call .dequeue between (4) and (5), we will have // a strong UAF and we can control RIP q->classes[i].qdisc = NULL; WRITE_ONCE(q->classes[i].quantum, 0); q->classes[i].deficit = 0; gnet_stats_basic_sync_init(&q->classes[i].bstats); memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats)); } return 0; } Comment: This happens because some of the classe

Affected

53 ranges· showing 25
VendorProductVersion rangeFixed in
debianlinux< linux 6.1.162-1 (bookworm)linux 6.1.162-1 (bookworm)
debianlinux-6.1< linux 6.1.162-1 (bookworm)linux 6.1.162-1 (bookworm)
linuxlinux
linuxlinux>= 5.10.83 < 5.10.2485.10.248
linuxlinux>= 5.15.6 < 5.15.1985.15.198
linuxlinux>= ae2659d2c670252759ee9c823c4e039c0e05a6f2 < 062d5d544e564473450d72e6af83077c2b2ff7c3062d5d544e564473450d72e6af83077c2b2ff7c3
linuxlinux>= de6d25924c2a8c2988c6a385990cafbe742061bf < a75d617a4ef08682f5cfaadc01d5141c87e019c9a75d617a4ef08682f5cfaadc01d5141c87e019c9
linuxlinux>= de6d25924c2a8c2988c6a385990cafbe742061bf < 9987cda315c08f63a02423fa2f9a1f6602c861a09987cda315c08f63a02423fa2f9a1f6602c861a0
linuxlinux>= de6d25924c2a8c2988c6a385990cafbe742061bf < 06bfb66a7c8b45e3fed01351a4b087410ae5ef3906bfb66a7c8b45e3fed01351a4b087410ae5ef39
linuxlinux>= de6d25924c2a8c2988c6a385990cafbe742061bf < 45466141da3c98a0c5fa88be0bc14b4b6a4bd75c45466141da3c98a0c5fa88be0bc14b4b6a4bd75c
linuxlinux>= de6d25924c2a8c2988c6a385990cafbe742061bf < ce052b9402e461a9aded599f5b47e76bc727f7dece052b9402e461a9aded599f5b47e76bc727f7de
linuxlinux>= e25bdbc7e951ae5728fee1f4c09485df113d013c < c7f6e7cc14df72b997258216e99d897d2df0dbbdc7f6e7cc14df72b997258216e99d897d2df0dbbd
linuxlinux_kernel< 6.6.1206.6.120
linuxlinux_kernel>= 0 < 5.10.249-15.10.249-1
linuxlinux_kernel>= 0 < 6.1.162-16.1.162-1
linuxlinux_kernel>= 0 < 6.12.69-16.12.69-1
linuxlinux_kernel>= 0 < 6.18.3-16.18.3-1
linuxlinux_kernel>= 0 < 5.10.2485.10.248
linuxlinux_kernel>= 0 < 5.15.0-173.1835.15.0-173.183
linuxlinux_kernel>= 5.11.0 < 5.15.1985.15.198
linuxlinux_kernel>= 5.16.0 < 6.1.1606.1.160
linuxlinux_kernel>= 6.2.0 < 6.12.646.12.64
linuxlinux_kernel>= 6.7.0 < 6.18.36.18.3
ubuntulinux-aws
ubuntulinux-aws-6.17

CVSS provenance

nvdv3.17.8HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
osv7.8HIGH
vendor_ubuntu7.8HIGH
vendor_redhat6.2MEDIUM
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.