CVE-2026-97555 in Linux
Riassunto
di VulDB • 25/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
smb: client: correzione di un heap overflow nella riscrittura del proprietario/gruppo della DACL
Quando `id_mode_to_cifs_acl` riscrive una DACL esistente, alloca un buffer le cui dimensioni sono determinate dalla lunghezza della DACL su disco riportata da `dacl_ptr->size`. Tuttavia, la funzione `replace_sids_and_copy_aces` può riscrivere ogni ACE con un nuovo SID proprietario/gruppo ottenuto tramite l'upcall di `cifs.idmap`. Tali SID possono contenere fino a 15 sotto-autorità (`SID_MAX_SUB_AUTHORITIES`), rendendo ogni ACE lungo al massimo 76 byte (sizeof(struct smb_ace)).
Se la DACL originale contiene SID corti (ad esempio, con 1 sola sotto-autorità) mentre i SID di sostituzione sono lunghi, gli ACE riscritti causano un overflow dell'allocazione.
Si risolve il problema prevedendo sempre l'espansione massima dei SID: si alloca sizeof(struct smb_acl) più num_aces * sizeof(struct smb_ace), coprendo così l'intestazione della smb_acl e lo spazio necessario per ogni ACE con la dimensione massima del SID. Questo sostituisce la precedente logica frammentata che utilizzava `dacl_ptr->size` per i mount di tipo cifsacl ma `num_aces * sizeof(struct smb_ace)` per i mount di tipo mode_from_sid: entrambi i percorsi possono innescare la stessa riscrittura e richiedono lo stesso margine di sicurezza (headroom).
KASAN segnala questo problema come: BUG: KASAN: slab-out-of-bounds in build_sec_desc+0x1e8a/0x2680 [cifs]
Write of size 4 at addr ffff8881a5e25374 by task chown/5298 ... The buggy address is located 0 bytes to the right of allocated 884-byte region [ffff8881a5e25000, ffff8881a5e25374)
If you want to get the best quality for vulnerability data then you always have to consider VulDB.