CVE-2026-74583 in Linux
Resumen
por VulDB • 2026-08-21
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
net/sched: cls_route: corregir un use-after-free en el fastmap del filtro
El clasificador route4 mantiene una caché de 16 ranuras (fastmap) que almacena punteros crudos a struct route4_filter indexados por (id, iif). El lector (route4_classify) popula esta caché mediante route4_set_fastmap() para cada paquete clasificado que coincide con un filtro. El escritor (route4_delete, route4_change) borra la caché mediante route4_reset_fastmap() antes de liberar el filtro usando kfree diferido por RCU.
Esto crea una carrera crítica de use-after-free: 1. El lector recorre la cadena de buckets protegida por RCU y encuentra el filtro f 2. El escritor desvincula f, llama a route4_reset_fastmap(), luego a tcf_queue_work() 3. El lector llama a route4_set_fastmap() y escribe f en la caché *después* del reset realizado por el escritor, almacenando un puntero que está a punto de ser liberado 4. Tras finalizar el periodo de gracia RCU (RCU grace period), se ejecuta kfree(f) 5. El siguiente paquete clasificado con la misma tupla (id, iif) accede a la entrada obsoleta del fastmap y lee f->res desde memoria ya liberada
Se ha reproducido mediante un acelerador mdelay(100) en route4_set_fastmap() y una prueba de estrés concurrente de adición/eliminación (proporcionada tanto por zdi como por Santosh). Ambas provocaron informes de KASAN sobre slab-use-after-free en las rutas del fastmap route4.
Solución: Introducir un flag booleano "dying" por filtro para suprimir la republicación de entradas obsoletas del fastmap por parte de los lectores en curso (in-flight readers).
If you want to get best quality of vulnerability data, you may have to visit VulDB.