Ze ontdekten een kwetsbaarheid in ksmbd in de Linux Kernel

kwetsbaarheid

Als deze fouten worden misbruikt, kunnen aanvallers ongeoorloofde toegang krijgen tot gevoelige informatie of in het algemeen problemen veroorzaken

Er is onlangs informatie vrijgegeven dat: er is een kwetsbaarheid in de Linux-kernel ontdekt met een CVSS-score van 10 op de SMB-server, waardoor een niet-geverifieerde gebruiker de mogelijkheid krijgt om op afstand code uit te voeren.

Door de gevonden bug kunnen externe aanvallers willekeurige code uitvoeren op getroffen installaties. Verificatie is niet vereist om dit beveiligingslek te misbruiken, maar alleen systemen waarop ksmbd is ingeschakeld, zijn kwetsbaar.

De specifieke fout zit in de verwerking van de SMB2_TREE_DISCONNECT-opdrachten. Het probleem is het gevolg van het niet valideren dat een object bestaat voordat bewerkingen op dat object worden uitgevoerd. Een aanvaller kan deze kwetsbaarheid misbruiken om code uit te voeren in de context van de kernel.

KWETSBAARHEID DETAILS
Door deze kwetsbaarheid kunnen externe aanvallers willekeurige code uitvoeren op getroffen installaties van de Linux-kernel. Verificatie is niet vereist om dit beveiligingslek te misbruiken, maar alleen systemen waarop ksmbd is ingeschakeld, zijn kwetsbaar.

De specifieke fout bestaat in de verwerking van de SMB2_TREE_DISCONNECT-opdrachten. Het probleem wordt veroorzaakt door het ontbreken van validatie van het bestaan ​​van een object voordat bewerkingen op het object worden uitgevoerd. Een aanvaller kan deze kwetsbaarheid misbruiken om code uit te voeren in de context van de kernel.

Er wordt vermeld dat, afhankelijk van het type SMB-verzoek, elke nieuwe thread kan besluiten om opdrachten door te geven aan de gebruikersruimte (ksmbd.mountd); momenteel worden DCE/RPC-commando's geïdentificeerd om te worden afgehandeld door de gebruikersruimte. Om beter gebruik te maken van de Linux-kernel, werd besloten om de commando's als werkitems te behandelen en ze uit te voeren in de kworker-threadhandlers ksmbd -io.

Hierdoor kunnen managers multiplexen omdat de kernel zorgt voor het starten van extra werkthreads als de belasting toeneemt en vice versa, als de belasting afneemt, doodt het de extra werkthreads.

Wanneer de serverdaemon start, start deze een fork-thread (ksmbd/interfacenaam) tijdens het opstarten en opent een speciale poort 445 om te luisteren naar SMB-verzoeken. Elke keer dat nieuwe clients een verzoek indienen, accepteert de forker-thread de verbinding van de client en maakt een nieuwe thread aan voor een speciaal communicatiekanaal tussen de client en de server. Hierdoor kunnen SMB-verzoeken (commando's) van clients parallel worden verwerkt en kunnen nieuwe clients nieuwe verbindingen tot stand brengen.

ksmbd veroorzaakte rode vlaggen bij sommige gebruikers die vorig jaar hun fusie bespraken. SerNet, een Duits computerbedrijf dat zijn eigen versie van Samba aanbiedt, zei in een blogpost dat ksmbd geweldig was, maar een beetje onvolwassen leek. Bovendien verklaarde het Samba + -team van SerNet in een blogpost dat de waarde van het toevoegen van een SMB-server aan de kernelruimte misschien niet het risico waard is om "het laatste beetje prestatie uit de beschikbare dingen te persen".

Gelukkig, als je de "experimentele" ksmbd-module van Samsung niet gebruikt, zoals beschreven door beveiligingsonderzoeker Shir Tamari op Twitter, en Samba hebt behouden, ben je volkomen veilig. “ksmbd is nieuw; de meeste gebruikers gebruiken nog steeds Samba en worden niet beïnvloed. Kortom, als je geen SMB-servers draait met ksmbd, geniet dan van je weekend", tweette Tamari.

Volgens het Zero-Day-initiatief die de ksmbd-kwetsbaarheid aan het licht bracht, bestaat de "use-after-free"-fout in de verwerking van de SMB2_TREE_DISCONNECT-opdrachten. Volgens ZDI wordt het probleem veroorzaakt doordat ksmbd het bestaan ​​van objecten niet valideert voordat er bewerkingen op worden uitgevoerd.

Voor degenen die ksmbd gebruiken, is er een oplossing naast het overschakelen naar Samba: upgrade naar Linux-kernelversie 5.15.61, uitgebracht in augustus of later. Deze kernelupdate verhelpt ook enkele andere problemen in ksmbd: een out-of-bounds read voor SMB2_TREE_CONNECT, wat volgens de patch-opmerking ongeldige verzoeken om geen berichten te verzenden zou kunnen toestaan, en een geheugenlek in smb2_handle_negotiate waardoor een onjuiste free. geheugen.

eindelijk als je bent geïnteresseerd om er meer over te weten, kunt u de details bekijken In de volgende link.