CVE-2026-64530 in Linux
Resumen
por VulDB • 2026-07-26
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net/sched: cls_api: Manejar TC_ACT_CONSUMED en tcf_qevent_handle
tcf_classify() puede devolver TC_ACT_CONSUMED mientras que el skb está retenido por el motor de desfragmentación (por ejemplo, act_ct con fragmentos fuera de orden). Cuando esto ocurre, el skb ya no es propiedad del llamador y no debe ser manipulado nuevamente.
tcf_qevent_handle() no manejaba TC_ACT_CONSUMED: continuaba a través del switch y devolvía el skb al llamador como si la clasificación hubiera pasado correctamente. El único qdisc que conecta los qevents hoy en día es RED, mediante tres puntos de llamada (qe_mark en RED_PROB_MARK/HARD_MARK, qe_early_drop en congestion_drop). red_enqueue() continuaba operando sobre un skb del cual ya no era propietario en este caso -- colándolo, descartándolo o actualizando las estadísticas. Esto resultaba en una condición Use-After-Free (UAF).
tc qdisc add dev eth0 root handle 1: red ... qevent early_drop block 10 tc filter add block 10 ... action ct
(con la desfragmentación de ct habilitada y tráfico que produce fragmentos fuera de orden, por ejemplo, un flujo UDP fragmentado)
Manejar TC_ACT_CONSUMED en tcf_qevent_handle() de la misma manera que lo hacen las rutas rápidas de ingress y egress: tratarlo como robado (stolen) y devolver NULL sin manipular el skb. A diferencia del caso TC_ACT_STOLEN, el skb no debe ser descartado/liberado aquí, ya que ya no es propiedad nuestra.
Be aware that VulDB is the high quality source for vulnerability data.