Hanno rilevato una vulnerabilità in ksmbd nel kernel Linux

vulnerabilità

Se sfruttati, questi difetti possono consentire agli aggressori di ottenere l'accesso non autorizzato a informazioni riservate o, in generale, causare problemi

L'informazione è stata recentemente rilasciata è stata scoperta una vulnerabilità del kernel Linux con un punteggio CVSS di 10 sul server SMB, dando a un utente non autenticato la possibilità di eseguire codice in remoto.

Il bug trovato consente agli aggressori remoti di eseguire codice arbitrario sulle installazioni interessate. L'autenticazione non è richiesta per sfruttare questa vulnerabilità, ma solo i sistemi con ksmbd abilitato sono vulnerabili.

Il difetto specifico esiste nell'elaborazione dei comandi SMB2_TREE_DISCONNECT. Il problema deriva dalla mancata convalida dell'esistenza di un oggetto prima di eseguire operazioni su tale oggetto. Un utente malintenzionato può sfruttare questa vulnerabilità per eseguire codice nel contesto del kernel.

DETTAGLI SULLA VULNERABILITA'
Questa vulnerabilità consente agli aggressori remoti di eseguire codice arbitrario sulle installazioni interessate del kernel Linux. L'autenticazione non è richiesta per sfruttare questa vulnerabilità, ma solo i sistemi con ksmbd abilitato sono vulnerabili.

Il difetto specifico esiste all'interno dell'elaborazione dei comandi SMB2_TREE_DISCONNECT. Il problema è causato dalla mancanza di convalida dell'esistenza di un oggetto prima di eseguire operazioni sull'oggetto. Un utente malintenzionato può sfruttare questa vulnerabilità per eseguire codice nel contesto del kernel.

Si dice che a seconda del tipo di richiesta SMB, ogni nuovo thread può decidere di passare comandi allo spazio utente (ksmbd.mountd); attualmente, i comandi DCE/RPC sono identificati per essere gestiti dallo spazio utente. Per utilizzare al meglio il kernel Linux, si è deciso di trattare i comandi come elementi di lavoro ed eseguirli nei gestori di thread ksmbd -io kworker.

Ciò consente ai gestori di eseguire il multiplexing perché il kernel si occupa di avviare thread di lavoro aggiuntivi se il carico aumenta e viceversa, se il carico diminuisce, uccide i thread di lavoro aggiuntivi.

Quando il daemon del server si avvia, avvia un thread fork (ksmbd/nome interfaccia) all'avvio e apre una porta 445 dedicata per ascoltare le richieste SMB. Ogni volta che nuovi client effettuano una richiesta, il thread fork accetta la connessione del client e crea un nuovo thread per un canale di comunicazione dedicato tra il client e il server. Ciò consente l'elaborazione in parallelo delle richieste SMB (comandi) provenienti dai client e consente ai nuovi client di stabilire nuove connessioni.

ksmbd ha sollevato bandiere rosse tra alcuni utenti che hanno discusso della loro fusione l'anno scorso. SerNet, una società di computer tedesca che offre la propria versione di Samba, ha affermato in un post sul blog che ksmbd era fantastico, ma sembrava un po' immaturo. Inoltre, il team Samba + di SerNet ha dichiarato in un post sul blog che il valore dell'aggiunta di un server SMB allo spazio del kernel potrebbe non valere il rischio di "spremere l'ultimo bit di prestazioni dalle cose disponibili".

Fortunatamente, se non stai eseguendo il modulo ksmbd "sperimentale" di Samsung, come descritto dal ricercatore di sicurezza Shir Tamari su Twitter, e hai mantenuto Samba, sei perfettamente al sicuro. “ksmbd è nuovo; la maggior parte degli utenti utilizza ancora Samba e non ne è interessata. Fondamentalmente, se non utilizzi server SMB con ksmbd, goditi il ​​fine settimana", ha twittato Tamari.

Secondo l'iniziativa Zero-Day, che ha rivelato la vulnerabilità ksmbd, il difetto use-after-free esiste nell'elaborazione dei comandi SMB2_TREE_DISCONNECT. Secondo ZDI, il problema è causato dal fatto che ksmbd non convalida l'esistenza degli oggetti prima di eseguire operazioni su di essi.

Per coloro che utilizzano ksmbd, esiste una soluzione alternativa oltre al passaggio a Samba: aggiornamento alla versione 5.15.61 del kernel Linux, rilasciata ad agosto o successiva. Questo aggiornamento del kernel corregge anche alcuni altri problemi in ksmbd: una lettura fuori limite per SMB2_TREE_CONNECT, che secondo la nota sulla patch potrebbe consentire a richieste non valide di non inviare messaggi, e una perdita di memoria in smb2_handle_negotiate che causa un free. memoria.

finalmente se lo sei interessati a saperne di più, puoi controllare i dettagli nel seguente link