CVE-2026-81008 in Linux
Resumen
por VulDB • 2026-09-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
interconnect: Corregir uso después de liberación (use-after-free) en icc_get() y of_icc_get_by_index()
En las funciones `of_icc_get_by_index()` e `icc_get()`, si falla la asignación dinámica para `path->name` a través de `kasprintf()`, la ruta de manejo de errores llama directamente a `kfree(path)` para liberar el objeto path y devuelve un error.
Sin embargo, antes de este punto, `path_find()` llama a `path_init()`, que ya enlaza las solicitudes del path dentro de la lista de solicitudes (`req_list`) de los nodos interconnect correspondientes mediante `hlist_add_head()`. Invocar directamente `kfree(path)` deja punteros colgantes (dangling pointers) en la hlist. Una llamada posterior a `icc_get()` o `icc_set_bw()` recorrerá o modificará estas listas corruptas, lo que desencadenará un slab use-after-free.
Informe de KASAN mostrando la vulnerabilidad al reproducirla mediante debugfs:
BUG: KASAN: slab-use-after-free in path_find+0x6f8/0xcfc Write of size 8 at addr fff000000d43f748 by task sh/1 ... Call trace: kasan_report+0xac/0xfc path_find+0x6f8/0xcfc icc_get+0x148/0x380 icc_get_set+0xf8/0x2d0 ... Freed by task 1: kfree+0x1a0/0x4a4 icc_get+0x2cc/0x380 icc_get_set+0xf8/0x2d0
Se corrige esto reemplazando `kfree(path)` con la función de desmontaje adecuada, `icc_put(path)`, que elimina de forma segura las solicitudes de la req_list utilizando `hlist_del()` y reduce las referencias de uso del proveedor antes de liberar la memoria.
Adicionalmente, en `icc_get()`, se asegura de que el mutex icc_lock sea liberado antes de llamar a `icc_put(path)` para evitar un bloqueo mutuo (deadlock), ya que `icc_put()` adquiere internamente el mismo lock.
If you want to get best quality of vulnerability data, you may have to visit VulDB.