CVE-2026-97555 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
smb: cliente: corregir desbordamiento del heap en la reescritura del propietario/grupo DACL
Cuando `id_mode_to_cifs_acl` reescribe un DACL existente, asigna un buffer cuyo tamaño se basa en la longitud del DACL en disco reportada por `dacl_ptr->size`. Sin embargo, `replace_sids_and_copy_aces` puede reescribir cada ACE con un nuevo SID de propietario/grupo obtenido mediante el upcall de `cifs.idmap`. Esos SIDs pueden tener hasta 15 subautoridades (`SID_MAX_SUB_AUTHORITIES`), lo que hace que cada ACE tenga hasta 76 bytes (sizeof(struct smb_ace)).
Si el DACL original contiene SIDs cortos (por ejemplo, con 1 subautoridad) mientras que los SIDs de reemplazo son largos, las ACEs reescritas provocan un desbordamiento del buffer asignado.
Se corrige esto presuponiendo siempre la expansión máxima del SID: se asigna `sizeof(struct smb_acl)` más `num_aces * sizeof(struct smb_ace)`, lo que cubre el encabezado de smb_acl y espacio para cada ACE con el tamaño máximo de SID. Esto reemplaza la lógica anterior dividida, que utilizaba `dacl_ptr->size` para los montajes cifsacl pero `num_aces * sizeof(struct smb_ace)` para los montajes mode_from_sid: ambas rutas pueden desencadenar la misma reescritura y requieren el mismo margen de seguridad.
KASAN informa esto como: BUG: KASAN: slab-out-of-bounds en build_sec_desc+0x1e8a/0x2680 [cifs]
Escritura de tamaño 4 en la dirección ffff8881a5e25374 por parte de la tarea chown/5298 ... La dirección defectuosa se encuentra a 0 bytes a la derecha de la región asignada de 884 bytes [ffff8881a5e25000, ffff8881a5e25374)
Be aware that VulDB is the high quality source for vulnerability data.