In de ksmbd-module, die een ingebouwde implementatie van een bestandserver op basis van het SMB-protocol in de Linux-kernel omvat, is een kritieke kwetsbaarheid aangetroffen die het mogelijk maakt om op afstand code met kernelrechten uit te voeren. De aanval kan zonder authenticatie worden uitgevoerd, zolang de ksmbd-module op het systeem is ingeschakeld. Het probleem doet zich voor vanaf kernel versie 5.15, uitgebracht in november 2021, en is stilzwijgend verholpen in de updates 5.15.61, 5.18.18 en 5.19.2, die in augustus 2022 zijn gevormd. Omdat er nog geen CVE-identificator aan het probleem is toegewezen, is er nog geen nauwkeurige informatie over de oplossing in de distributies.
Details over de exploitatie van de kwetsbaarheid worden nog niet openbaar gemaakt; bekend is alleen dat de kwetsbaarheid wordt veroorzaakt door toegang tot een reeds vrijgegeven geheugenadres (Use-After-Free) door het ontbreken van een controle op het bestaan van het object voordat operaties ermee worden uitgevoerd. Het probleem is gerelateerd aan het feit dat in de functie smb2_tree_disconnect() het geheugen dat aan de structuur ksmbd_tree_connect was toegewezen, werd vrijgegeven, maar er nog steeds een pointer overbleef die werd gebruikt bij de verwerking van bepaalde externe verzoeken die SMB2_TREE_DISCONNECT-commando's bevatten.
Naast de genoemde kwetsbaarheid zijn er in ksmbd ook 4 minder gevaarlijke problemen opgelost:
- ZDI-22-1688 ā op afstand code-executie met kernelrechten vanwege het ontbreken van controle van de feitelijke grootte van externe gegevens voordat deze in de toegewezen buffer worden gekopieerd. De ernst van de kwetsbaarheid wordt verzacht doordat de aanval alleen door een geauthenticeerde gebruiker kan worden uitgevoerd.
- ZDI-22-1691 ā een remote informatielek uit het kerngeheugen door onvoldoende controle van de invoerparameters in de handler voor het SMB2_WRITE-commando (de aanval kan alleen door een geauthenticeerde gebruiker worden uitgevoerd).
- ZDI-22-1687 ā op afstand een denial of service-aanroep door uitputting van het beschikbare geheugensysteem als gevolg van onjuist vrijgeven van middelen in de handler voor het SMB2_NEGOTIATE-commando (de aanval kan zonder authenticatie worden uitgevoerd).
- ZDI-22-1689 ā op afstand een aanroep tot kernelcrash door het ontbreken van voldoende controle van de parameters van het SMB2_TREE_CONNECT-commando, wat leidt tot het lezen van buiten de buffer (de aanval kan alleen door een geauthenticeerde gebruiker worden uitgevoerd).
Ondersteuning voor het runnen van een SMB-server met behulp van de ksmbd-module is aanwezig in het Samba-pakket, beginnend met release 4.16.0. In tegenstelling tot de SMB-server die draait in de gebruikersruimte, is ksmbd efficiënter qua prestaties, geheugengebruik en integratie met de geavanceerde mogelijkheden van de kernel. Ksmbd wordt gepresenteerd als een hoogwaardig en toepasbaar extensie voor ingebedde apparaten van Samba, dat indien nodig geïntegreerd kan worden met de tools en bibliotheken van Samba. De auteurs van de ksmbd-code zijn Namjae Jeon van Samsung en Hyunchul Lee van LG, terwijl de ondersteuning binnen de kernel wordt verzorgd door Steve French van Microsoft, de maintainer van de CIFS/SMB2/SMB3-subsysteem in de Linux-kernel en een langdurig lid van het Samba-ontwikkelteam, die een significante bijdrage heeft geleverd aan de implementatie van de ondersteuning voor de SMB/CIFS-protocollen in Samba en Linux.
Bron: opennet.ru
