Vulnerabilidad en Linux (CVE-2026-23074)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416
Utilización después de liberación
Fecha de publicación:
04/02/2026
Última modificación:
03/04/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
net/sched: Forzar que teql solo pueda ser usado como qdisc raíz<br />
<br />
La intención del diseño de teql es que solo se supone que debe ser usado como qdisc raíz.<br />
Necesitamos verificar esa restricción.<br />
<br />
Aunque no es importante, describiré el escenario que desenterró este problema para los curiosos.<br />
<br />
GangMin Kim logró idear un escenario de la siguiente manera:<br />
<br />
qdisc RAÍZ 1:0 (QFQ)<br />
??? clase 1:1 (peso=15, lmax=16384) netem con retardo de 6.4s<br />
??? clase 1:2 (peso=1, lmax=1514) teql<br />
<br />
GangMin envía un paquete que es encolado a 1:1 (netem).<br />
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.
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.12.1 (incluyendo) | 5.10.249 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.199 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.162 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.122 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.68 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.8 (excluyendo) |
| 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:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/0686bedfed34155520f3f735cbf3210cb9044380
- https://git.kernel.org/stable/c/16ed73c1282d376b956bff23e5139add061767ba
- https://git.kernel.org/stable/c/4c7e8aa71c9232cba84c289b4b56cba80b280841
- https://git.kernel.org/stable/c/50da4b9d07a7a463e2cfb738f3ad4cff6b2c9c3b
- https://git.kernel.org/stable/c/73d970ff0eddd874a84c953387c7f4464b705fc6
- https://git.kernel.org/stable/c/ae810e6a8ac4fe25042e6825d2a401207a2e41fb
- https://git.kernel.org/stable/c/dad49a67c2d817bfec98e6e45121b351e3a0202c



