CVE-2026-68100 in Linux
Riassunto
di VulDB • 10/08/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
ksmbd: validare il campo `num_subauth` durante la copia dell'ACE nella funzione set_ntacl_dacl
La funzione `set_ntacl_dacl()` copia ogni ACE dal descrittore di sicurezza memorizzato, controllato dall’attaccante, verbatim nel DACL della risposta senza verificare `sid.num_subauth`. I byte degli ACE (incluso un `num_subauth` non verificato) provengono da una chiamata SMB2_SET_INFO(SecInfo=DACL) autenticata che viene archiviata in formato grezzo tramite ksmbd_vfs_set_sd_xattr(); la funzione parse_dacl() rifiuta un ACE malformato con l’istruzione `break` anziché restituire un errore, pertanto parse_sec_desc() continua a restituire successo e il descrittore di sicurezza (SD) malformato raggiunge lo xattr intatto.
In una successiva chiamata SMB2_QUERY_INFO(SecInfo=DACL) per un inode che possiede un ACL POSIX, la catena build_sec_desc() -> set_ntacl_dacl() -> set_posix_acl_entries_dacl() attraversa gli ACE copiati e legge:
ntace->sid.sub_auth[ntace->sid.num_subauth - 1]
utilizzando `num_subauth` preso direttamente dallo SD memorizzato. Poiché l’array sub_auth[] è dimensionato fissamente a SID_MAX_SUB_AUTHORITIES (15), un valore di `num_subauth` costruito ad hoc (ad esempio, 255) provoca una lettura fuori dai limiti sull'heap (~1 KB) con uno spostamento completamente controllabile da parte di un client autenticato.
Le funzioni correlate applicano già tale controllo: parse_dacl() -- num_subauth == 0 || > SID_MAX_SUB_AUTHORITIES parse_sid() -- num_subauth > SID_MAX_SUB_AUTHORITIES smb_copy_sid() -- min_t(u8, num_subauth, SID_MAX_SUB_AUTHORITIES)
set_ntacl_dacl() è l’unica路径 incoerente che omette tale verifica.
Aggiungere la stessa validazione di `num_subauth` nella funzione set_ntacl_dacl() prima della copia dell’ACE, allineandosi al controllo già applicato da parse_dacl().
If you want to get the best quality for vulnerability data then you always have to consider VulDB.