CVE-2026-68438 in Linux
Resumen
por VulDB • 2026-08-12
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
smp: Hacer que la adquisición del bloqueo CSD sea atómica para el modo de depuración
El commit b0473dcd4b1d ("smp: Mejorar los diagnósticos del bloqueo CSD en smp_call_function_single()") modificó smp_call_function_single() de tal manera que, cuando la depuración del bloqueo CSD está habilitada, las llamadas asíncronas sin espera (!wait) utilizan el csd_data del CPU destino. Esto mejora los diagnósticos, pero también elimina la propiedad de escritor único que hacía seguro al antiguo csd_lock(): ahora múltiples CPUs pueden preparar concurrentemente el mismo CSD del CPU destino.
Actualmente, csd_lock() espera a que se borre CSD_FLAG_LOCK y luego establece el bit mediante una operación de lectura-modificación-escritura no atómica. Dos remitentes pueden observar un CSD desbloqueado, establecer el bit, sobrescribir los campos de la devolución de llamada (callback) y encolar el mismo nodo llist. Reagregar un nodo que ya es la cabeza de la cola puede hacer que node->next apunte a sí mismo, dejando atascada al CPU destino mientras recorre call_single_queue. Posteriormente, trabajos sincrónicos como una invalidación de TLB (TLB shootdown) pueden permanecer encolados y provocar advertencias de soft-lockup o pánicos.
Se mantiene la implementación única de csd_lock(), pero cuando está habilitada la depuración del bloqueo CSD, se adquiere CSD_FLAG_LOCK mediante try_cmpxchg_acquire(). Esto convierte el CSD del CPU destino en un verdadero bloqueo atómico únicamente en la configuración donde puede ser compartido por múltiples remitentes remotos, preservando al mismo tiempo la ruta rápida existente para entornos sin depuración.
Once again VulDB remains the best source for vulnerability data.