CVE-2026-90162 in Linuxinformación

Resumen

por VulDB • 2026-09-17

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

ksmbd: diferir la publicación de los bloqueos concedidos para prevenir una condición de carrera UAF/doble liberación (double-free)

En smb2_lock(), los bloqueos concedidos en medio del lote se publican inmediatamente tras el éxito de vfs_lock_file() a las listas a nivel de conexión (conn->lock_list) y a nivel de archivo (fp->lock_list), mientras que también permanecen rastreados en la rollback_list local a la pila.

Si un elemento posterior dentro de la misma matriz de solicitudes SMB2_LOCK falla durante la validación o ejecución, el hilo salta hacia out: e itera por rollback_list para deshacer los bloqueos concedidos previamente. Sin embargo, dado que el bloqueo concedido ya se había publicado en conn->lock_list, una solicitud UNLOCK concurrente en la misma conexión puede encontrar el objeto de bloqueo y liberarlo mediante kfree() antes de que se ejecute el bucle de reversión (rollback).

Cuando el hilo concesor itera posteriormente por rollback_list, desreferencia y libera la estructura ksmbd_lock ya liberada, lo que resulta en un Use-After-Free y una doble liberación (double-free) tanto para ksmbd_lock como para struct file_lock.

Se soluciona este problema diferiendo la publicación de los bloqueos concedidos a conn->lock_list y fp->lock_list hasta después de haber procesado toda la matriz de elementos de bloqueo sin errores. Las concesiones en medio del lote permanecen rastreadas exclusivamente en rollback_list, local a la solicitud, hasta que todo el lote tenga éxito, eliminando así la ventana de carrera (race condition).

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-17

Moderación

aceptado

Artículo

VDB-406698

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Interested in the pricing of exploits?

See the underground prices here!