CVE-2026-23074

In the Linux kernel, the following vulnerability has been resolved: net/sched: Enforce that teql can only be used as root qdisc Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint. Although not important, I will describe the scenario that unearthed this issue for the curious. GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows: ROOT qdisc 1:0 (QFQ) ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s └── class 1:2 (weight=1, lmax=1514) teql GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*

History

18 Mar 2026, 20:13

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: net/sched: Forzar que teql solo pueda ser usado como qdisc raíz La intención del diseño de teql es que solo se supone que debe ser usado como qdisc raíz. Necesitamos verificar esa restricción. Aunque no es importante, describiré el escenario que desenterró este problema para los curiosos. GangMin Kim logró idear un escenario de la siguiente manera: qdisc RAÍZ 1:0 (QFQ) ??? clase 1:1 (peso=15, lmax=16384) netem con retardo de 6.4s ??? clase 1:2 (peso=1, lmax=1514) teql GangMin envía un paquete que es encolado a 1:1 (netem). Cualquier invocación de desencolado por QFQ desde esta clase no devolverá un paquete hasta después de 6.4s. Mientras tanto, un segundo paquete es enviado y aterriza en 1:2. El encolado de teql devolverá éxito y esto activará la clase 1:2. El problema principal es que teql solo actualiza el qlen visible del padre (sch-&gt;q.qlen) al desencolar. Dado que QFQ solo llamará a desencolar si peek tiene éxito (y el peek de teql siempre devuelve NULL), desencolar nunca será llamado y, por lo tanto, el qlen permanecerá como 0. Con eso en mente, cuando GangMin actualiza el valor lmax de 1:2, qfq_change_class llama a qfq_deact_rm_from_agg. Dado que el qlen del qdisc hijo no fue incrementado, qfq falla al desactivar la clase, pero aún así libera sus punteros del agregado. Así, cuando el primer paquete es reprogramado después de 6.4 segundos (el retardo de netem), se accede a un puntero colgante causando un UAF de GangMin.
CWE CWE-416
First Time Linux
Linux linux Kernel
CPE cpe:2.3:o:linux:linux_kernel:2.6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc3:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/0686bedfed34155520f3f735cbf3210cb9044380 - () https://git.kernel.org/stable/c/0686bedfed34155520f3f735cbf3210cb9044380 - Patch
References () https://git.kernel.org/stable/c/16ed73c1282d376b956bff23e5139add061767ba - () https://git.kernel.org/stable/c/16ed73c1282d376b956bff23e5139add061767ba - Patch
References () https://git.kernel.org/stable/c/4c7e8aa71c9232cba84c289b4b56cba80b280841 - () https://git.kernel.org/stable/c/4c7e8aa71c9232cba84c289b4b56cba80b280841 - Patch
References () https://git.kernel.org/stable/c/50da4b9d07a7a463e2cfb738f3ad4cff6b2c9c3b - () https://git.kernel.org/stable/c/50da4b9d07a7a463e2cfb738f3ad4cff6b2c9c3b - Patch
References () https://git.kernel.org/stable/c/73d970ff0eddd874a84c953387c7f4464b705fc6 - () https://git.kernel.org/stable/c/73d970ff0eddd874a84c953387c7f4464b705fc6 - Patch
References () https://git.kernel.org/stable/c/ae810e6a8ac4fe25042e6825d2a401207a2e41fb - () https://git.kernel.org/stable/c/ae810e6a8ac4fe25042e6825d2a401207a2e41fb - Patch
References () https://git.kernel.org/stable/c/dad49a67c2d817bfec98e6e45121b351e3a0202c - () https://git.kernel.org/stable/c/dad49a67c2d817bfec98e6e45121b351e3a0202c - Patch

06 Feb 2026, 17:16

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/73d970ff0eddd874a84c953387c7f4464b705fc6 -
  • () https://git.kernel.org/stable/c/ae810e6a8ac4fe25042e6825d2a401207a2e41fb -
  • () https://git.kernel.org/stable/c/dad49a67c2d817bfec98e6e45121b351e3a0202c -

04 Feb 2026, 17:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-02-04 17:16

Updated : 2026-04-03 14:16


NVD link : CVE-2026-23074

Mitre link : CVE-2026-23074

CVE.ORG link : CVE-2026-23074


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free