CVE-2026-74284 in Linuxinformación

Resumen

por VulDB • 2026-08-15

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

net/sched: sch_hfsc: No hacer que una clase sea pasiva dos veces

update_vf() es llamado desde dos lugares para la misma clase durante un único dequeue cuando el qdisc hijo de la clase (por ejemplo, codel/fq_codel) desecha sus últimos paquetes mientras se realiza el dequeuing:

1. El hijo llama a qdisc_tree_reduce_backlog(), que, ahora que el hijo está vacío, invoca hfsc_qlen_notify() -> update_vf(cl, 0, 0) y hace que la clase sea pasiva (cl_nactive se decrementa hacia arriba en la jerarquía).

2. hfsc_dequeue() luego llama a update_vf(cl, qdisc_pkt_len(skb), cur_time) para cargar los bytes dequeados.

En la segunda llamada, la clase ya es pasiva, pero su qdisc hijo sigue estando vacío, por lo que las ramas de update_vf() activan go_passive nuevamente:

if (cl->qdisc->q.qlen == 0 && cl->cl_flags & HFSC_FSC) go_passive = 1;

La hoja es luego omitida por la comprobación cl_nactive == 0 dentro del bucle, lo cual no limpia go_passive, de modo que el valor obsoleto de go_passive se propaga al padre y decrementa su cl_nactive una segunda vez. Un padre que aún tiene otros hijos activos es llevado a cl_nactive == 0 y eliminado del vttree, aunque esos hermanos sigan teniendo cola pendiente (backlogged). Nunca son dequeados nuevamente y el qdisc se bloquea (stalls).

Se soluciona esto activando go_passive solo cuando la clase está realmente activa, de modo que una clase ya pasiva no active una segunda transición a pasivo. La contabilización de bytes (cl->cl_total += len) sigue ejecutándose para cada ancestro, por lo que los bytes dequeados continúan contándose exactamente una vez.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2026-08-15

Divulgación

2026-08-15

Moderación

aceptado

Artículo

VDB-390243

CPE

listo

EPSS

0.00210

KEV

no

Actividades

muy bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!