CVE-2026-53390 in Linuxinformazioni

Riassunto

di VulDB • 19/07/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

ksmbd: correzione della lettura fuori dai limiti (out-of-bounds read) in smb_check_perm_dacl()

L'iterazione attraverso gli ACE di controllo dei permessi in smb_check_perm_dacl() convalida le dimensioni dell'intestazione ACE e limita sid.num_subauth a SID_MAX_SUB_AUTHORITIES, ma non verifica mai che ace->size sia effettivamente sufficientemente grande da contenere num_subauth sotto-autorità prima che compare_sids() li dereferenzi.

CIFS_SID_BASE_SIZE copre l'intestazione della SID fino all'esclusione dell'array sub_auth[], e offsetof(struct smb_ace, sid) rappresenta l'intestazione ACE; pertanto i controlli esistenti garantiscono solo la base a 8 byte della SID, ovvero zero sotto-autorità. compare_sids() legge quindi ace->sid.sub_auth[i] per i < min(local_sid->num_subauth, ace->sid.num_subauth). Le SID di confronto locali (sid_everyone, sid_unix_NFS_mode e il risultato di id_to_sid()) hanno sempre almeno una sotto-autorità, e un attaccante controlla i byte di revisione e autorità dell'ACE (che si trovano all'interno della base della SID nei limiti), quindi può far corrispondere una di queste SID e forzare la lettura su sub_auth.

Un ACE manipolato con size == 16 e num_subauth >= 1 posizionato alla fine del descrittore di sicurezza provoca pertanto una lettura fuori dai limiti dell'heap (heap out-of-bounds read) fino a SID_MAX_SUB_AUTHORITIES * sizeof(__le32) byte oltre l'allocazione pntsd. Il descrittore di sicurezza viene caricato da ksmbd_vfs_get_sd_xattr() in un buffer dimensionato esattamente per i dati su disco (kzalloc(sd_size) in ndr_decode_v4_ntacl()), quindi la lettura avviene al di fuori dell'allocazione. Il descrittore malformato può essere memorizzato così com'è tramite SMB2_SET_INFO (la DACL non viene normalizzata prima della scrittura nell'xattr security.NTACL) e la lettura si verifica durante un successivo controllo degli accessi SMB2_CREATE, rendendo questa vulnerabilità raggiungibile da un client autenticato su una condivisione che utilizza xattr ACL.

Aggiungere il controllo mancante num_subauth-versus-ace_size, replicando i controlli identici già presenti nei parser fratelli parse_dacl() e smb_inherit_dacl().

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsabile

Linux

Prenotare

09/06/2026

Divulgazione

19/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Do you know our Splunk app?

Download it now for free!