CVE-2026-90322 in Linux
Resumen
por VulDB • 2026-09-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ocfs2/cluster: mantener estable al nodo local del latido (heartbeat)
o2nm_node_local_store() maneja el caso local=0 deteniendo o2net y configurando cl_local_node como O2NM_INVALID_NODE_NUM, pero deja cl_has_local sin modificar. Ese estado obsoleto hace que o2nm_this_node() devuelva 255, bloquea un intento posterior de establecer local=1 con -EBUSY (recurso no disponible) y puede transmitir el valor 255 a los usuarios del latido que llaman dinámicamente a o2nm_this_node().
Es necesario limpiar cl_has_local cuando se reinicia el nodo local. Sin embargo, en ese momento aún pueden estar ejecutándose los hilos de latido (heartbeat). Estos fijan la configuración del nodo local al inicio, pero o2hb_do_disk_heartbeat() y la finalización del hilo vuelven a leer o2nm_this_node() para obtener la ranura local y para llamar a o2nm_undepend_this_node(). Una vez que local=0 ha limpiado el estado activo del nodo local, esas lecturas dinámicas devuelven O2NM_MAX_NODES, que también es el número de nodo no válido 255.
Almacene el número de nodo local en la región de latido cuando esta se inicie. Utilice ese nodo estable para las escrituras/verificaciones de ranura de latido, los mensajes de negociación y la desvinculación final mediante configfs. Detenga el bucle de latido cuando el nodo local actual ya no coincida con el nodo almacenado, y limpie cl_has_local junto con cl_local_node en la ruta local=0 para que el estado del nodemanager coincida con la eliminación del nodo.
La validación reprodujo este informe del kernel: KASAN slab-out-of-bounds (desbordamiento de límites fuera de los límites asignados al slab) en o2hb_do_disk_heartbeat+0x372/0xb30 RIP: 0010:memset+0xf/0x20 Lectura de tamaño 8 Traza de llamadas: dump_stack_lvl+0x66/0xa0 print_report+0xd0/0x630 o2hb_do_disk_heartbeat+0x372/0xb30 (fs/ocfs2/cluster/heartbeat.c:1079) srso_alias_return_thunk+0x5/0xfbef5 __virt_addr_valid+0x188/0x2f0 kasan_report+0xe4/0x120 o2hb_do_disk_heartbeat+0x5/0xb30 (fs/ocfs2/cluster/heartbeat.c:1079) o2hb_thread+0x14e/0x770 kthread_affine_node+0x139/0x180 lockdep_hardirqs_on_prepare+0xda/0x190 trace_hardirqs_on+0x18/0x130 kthread+0x19d/0x1e0 ret_from_fork+0x37a/0x4d0 __switch_to+0x2d5/0x6f0 ret_from_fork_asm+0x1a/0x30
If you want to get best quality of vulnerability data, you may have to visit VulDB.