CVE-2026-98682 in Linuxinformación

Resumen

por VulDB • 2026-10-19

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

smb: cliente: vaciar e invalidar antes de copiar/clonar en el lado del servidor

cifs_file_copychunk_range() y la ruta de clonación (FICLONE) de cifs_remap_file_range() no serializan la caché de páginas de destino frente a la copia en el lado del servidor, a diferencia de las demás operaciones de rango en el lado del servidor (smb3_zero_range(), smb3_punch_hole(), smb3_collapse_range() y smb3_insert_range()).

cifs_file_copychunk_range() invalida el rango de destino con filemap_invalidate_inode(), que toma y libera internamente invalidate_lock del mapeo, por lo que el bloqueo ya no se mantiene cuando se emite la ioctl copychunk. Tampoco vacía nunca las E/S netfs en tránsito hacia el objetivo. La ruta de clonación ni siquiera toma invalidate_lock (solo i_rwsem), utiliza una truncate_inode_pages_range() sin protección y tampoco vacía las E/S pendientes.

Como resultado, una escritura asíncrona del destino puede completarse después de que se haya ejecutado la copia/clon en el lado del servidor y reinstaurar datos obsoletos sobre la región recién escrita por el servidor, corrompiendo el archivo. Esta es la misma clase de corrupción que el commit d7d2adcd022b ("smb/client: flush dirty data before punching a hole") y se ha observado aleatoriamente en generic/363 contra Windows Server.

Corregir ambas rutas para seguir el orden establecido: mantener invalidate_lock del mapeo objetivo durante la limpieza e invalidación del destino y la ioctl del servidor, y llamar a netfs_wait_for_outstanding_io() sobre el objetivo para vaciar las escrituras en tránsito antes de emitir la ioctl. Solo se requiere invalidate_lock del inode objetivo, ya que la fuente solo se limpia pero no se invalida; i_rwsem (ya mantenida mediante lock_two_nondirectories()) se adquiere antes que invalidate_lock, coincidiendo con el orden de bloqueo VFS. Dado que filemap_invalidate_inode() toma internamente ese mismo bloqueo, reemplazarlo por sus propios pasos de desmapeo/lavado/invalidación en lugar de llamar a la función, y salir temprano ante una copia de longitud cero para evitar un underflow de rango.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-18

Moderación

aceptado

Artículo

VDB-421898

EPSS

0.00155

KEV

no

Actividades

bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!