Van detectar una vulnerabilitat en ksmbd al Kernel de Linux

vulnerabilitat

Si s'exploten, aquestes falles poden permetre als atacants obtenir accés no autoritzat a informació confidencial o, en general, causar problemes

Fa poc es va donar a conèixer informació que es va descobrir una vulnerabilitat del nucli de Linux amb una puntuació CVSS de 10 al servidor SMB, el que brinda a un usuari no autenticat la capacitat dexecutar codi de forma remota.

La fallada trobada permet als atacants remots executar codi arbitrari a les instal·lacions afectades. No cal autenticació per explotar aquesta vulnerabilitat, però només els sistemes amb ksmbd habilitat són vulnerables.

La falla específica existeix en el processament de les ordres SMB2_TREE_DISCONNECT. El problema resulta de no validar que un objecte existeix abans de fer operacions en aquest objecte. Un atacant pot aprofitar aquesta vulnerabilitat per executar codi en el context del nucli.

DETALLS DE LA VULNERABILITAT
Aquesta vulnerabilitat permet als atacants remots executar codi arbitrari a les instal·lacions afectades del Kernel de Linux. No cal autenticació per explotar aquesta vulnerabilitat, però només els sistemes amb ksmbd habilitat són vulnerables.

La falla específica existeix dins del processament de les ordres SMB2_TREE_DISCONNECT. El problema és degut a la manca de validació de l'existència d'un objecte abans de realitzar operacions a l'objecte. Un atacant pot aprofitar aquesta vulnerabilitat per executar codi en el context del nucli.

S'esmenta que depenent del tipus de sol·licitud SMB, cada nou subprocés pot decidir passar ordres a l'espai d'usuari (ksmbd.mountd); actualment, les ordres DCE/RPC estan identificades per ser manejades per l'espai d'usuari. Per fer un millor ús del nucli de Linux, es va decidir tractar les ordres com a elements de treball i executar-les als controladors dels subprocessos ksmbd -io kworker.

Això permet multiplexar els administradors perquè el nucli s'encarrega d'iniciar subprocessos de treball addicionals si la càrrega augmenta i viceversa, si la càrrega disminueix, destrueix els subprocessos de treball addicionals.

Quan s'inicia el dimoni del servidor, inicia un subprocés de bifurcació (ksmbd/nom d'interfície) en el moment de l'arrencada i obre un port dedicat 445 per escoltar les sol·licituds de SMB. Cada cop que nous clients fan una sol·licitud, el subprocés forker accepta la connexió del client i crea un nou subprocés per a un canal de comunicació dedicat entre el client i el servidor. Això permet que les sol·licituds SMB (ordres) dels clients es processin en paral·lel i permet que nous clients estableixin noves connexions.

ksmbd va aixecar banderes vermelles entre alguns usuaris que van discutir la fusió l'any passat. SerNet, una empresa informàtica alemanya que ofereix la seva pròpia versió de Samba, va dir en una publicació de bloc que ksmbd era increïble, però semblava una mica immadur. A més, l'equip Samba+ de SerNet va declarar en una publicació de bloc que el valor d'afegir un servidor SMB a l'espai del nucli pot no valer el risc d'esprémer l'última part del rendiment del material disponible.

Afortunadament, si no esteu executant el mòdul ksmbd «experimental» de Samsung, com ho va descriure l'investigador de seguretat Shir Tamari a Twitter, i ha conservat Samba, està perfectament segur. “ksmbd és nou; la majoria dels usuaris encara usen Samba i no es veuen afectats. Bàsicament, si no esteu executant servidors SMB amb ksmbd, gaudiu el cap de setmana”, va tuitejar Tamari.

D'acord amb Zero-Day Initiative, que va revelar la vulnerabilitat ksmbd, la falla use-after-free existeix en el processament de les ordres SMB2_TREE_DISCONNECT. Segons ZDI, el problema és perquè ksmbd no valida l'existència dels objectes abans de fer-hi operacions.

Per a aquells que usen ksmbd, hi ha una solució alternativa a més de canviar a Samba: actualitzar a la versió 5.15.61 del nucli de Linux, llançada a l'agost, o posterior. Aquesta actualització del nucli també soluciona alguns altres problemes en ksmbd: una lectura fora dels límits per a SMB2_TREE_CONNECT, que segons la nota del pegat podria permetre que les sol·licituds no vàlides no enviïn missatges, i una fuita de memòria a smb2_handle_negotiate que provoca un alliberament incorrecte de la memòria.

Finalment si estàs interessat a poder conèixer més sobre això, Pots consultar els detalls en el següent enllaç.