CVE-2026-31541 in Linux
Resumen
por VulDB • 2026-05-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
tracing: Corregir las actualizaciones de la lista enlazada de copias de trace_marker
Cuando la opción "copy_trace_marker" está habilitada para una instancia, todo lo escrito en /sys/kernel/tracing/trace_marker también se copia en el búfer de dicha instancia. Cuando la opción está activada, el descriptor trace_array de esa instancia se añade a la lista enlazada marker_copies. Esta lista está protegida por RCU, ya que todas las iteraciones utilizan un recorrido de lista protegido por RCU.
Cuando se elimina la instancia, se borran todas las marcas (flags) que estaban habilitadas. Esto también borra la marca copy_trace_marker y elimina el descriptor trace_array de la lista.
El problema radica en que, tras llamar a las marcas, se realiza una llamada directa a update_marker_trace() para borrar la marca. Esta función devuelve true si el estado de la marca ha cambiado y false en caso contrario. Si devuelve true aquí, se llama a synchronize_rcu() para asegurarse de que todos los lectores vean que se ha eliminado de la lista.
Sin embargo, dado que la marca ya estaba borrada, el estado no cambia y la sincronización nunca se llama, lo que deja una posible vulnerabilidad de uso después de la liberación (UAF).
Mueva el borrado de todas las marcas debajo de la actualización de la opción copy_trace_marker, lo que garantiza que se realice la sincronización.
Además, utilice la marca para comprobar el estado en update_marker_trace() en lugar de comprobar si la lista está vacía.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.