Vulnerabilità nel modulo ksmbd del kernel Linux che ti consente di eseguire in remoto il tuo codice

È stata identificata una vulnerabilità critica nel modulo ksmbd, che include un'implementazione di un file server basato sul protocollo SMB integrato nel kernel Linux, che consente l'esecuzione di codice remoto con diritti del kernel. L'attacco può essere effettuato senza autenticazione, è sufficiente che sul sistema sia attivato il modulo ksmbd. Il problema si è manifestato dal kernel 5.15, rilasciato nel novembre 2021, ed è stato risolto silenziosamente negli aggiornamenti 5.15.61, 5.18.18 e 5.19.2, formati nell'agosto 2022. Poiché al problema non è stato ancora assegnato un identificatore CVE, non ci sono ancora informazioni precise sulla risoluzione del problema nelle distribuzioni.

I dettagli sullo sfruttamento della vulnerabilità non sono ancora stati resi noti, si sa solo che la vulnerabilità è causata dall'accesso ad un'area di memoria già liberata (Use-After-Free) a causa della mancata verifica dell'esistenza di un oggetto prima di eseguire operazioni con esso. Il problema è legato al fatto che nella funzione smb2_tree_disconnect() la memoria allocata per la struttura ksmbd_tree_connect è stata liberata, ma in seguito era ancora utilizzato un puntatore durante l'elaborazione di determinate richieste esterne contenenti comandi SMB2_TREE_DISCONNECT.

Oltre alla vulnerabilità menzionata in ksmbd, vengono risolti anche 4 problemi meno pericolosi:

  • ZDI-22-1688 - esecuzione di codice remoto con diritti del kernel a causa della mancanza di controllo della dimensione effettiva dei dati esterni nel codice di elaborazione degli attributi del file prima di copiarli nel buffer allocato. La pericolosità della vulnerabilità è mitigata dal fatto che l'attacco può essere effettuato solo da un utente autenticato.
  • ZDI-22-1691 - fuga di informazioni remote dalla memoria del kernel a causa del controllo errato dei parametri di input nel gestore dei comandi SMB2_WRITE (l'attacco può essere effettuato solo da un utente autenticato).
  • ZDI-22-1687 - Denial of Service remoto attraverso l'esaurimento della memoria disponibile nel sistema a causa del rilascio errato delle risorse nel gestore del comando SMB2_NEGOTIATE (l'attacco può essere effettuato senza autenticazione).
  • ZDI-22-1689 - chiamata remota per mandare in crash il kernel a causa del mancato controllo corretto dei parametri del comando SMB2_TREE_CONNECT, portando alla lettura da un'area fuori buffer (l'attacco può essere effettuato solo da un utente autenticato ).

Il supporto per l'esecuzione di un server SMB utilizzando il modulo ksmbd è stato incluso nel pacchetto Samba a partire dalla versione 4.16.0. A differenza di un server SMB in spazio utente, ksmbd è più efficiente in termini di prestazioni, consumo di memoria e integrazione con funzionalità avanzate del kernel. Ksmbd è pubblicizzato come un'estensione di Samba ad alte prestazioni e pronta per l'integrazione, che si integra con gli strumenti e le librerie di Samba secondo necessità. Il codice ksmbd è stato scritto da Namjae Jeon di Samsung e Hyunchul Lee di LG e mantenuto nel kernel da Steve French di Microsoft, manutentore dei sottosistemi CIFS/SMB2/SMB3 nel kernel Linux e membro di lunga data del team di sviluppo di Samba, che ha contribuito in modo significativo all'implementazione del supporto per i protocolli SMB/CIFS in Samba e Linux.

Fonte: opennet.ru

Aggiungi un commento