Kwetsbaarheden in de Linux-kernel die het mogelijk maken om privileges te verhogen via nf_tables en ksmbd

In Netfilter, het subsystem van de Linux-kernel dat wordt gebruikt voor het filteren en modificeren van netwerkpakketten, is een kwetsbaarheid (CVE-2024-1086) ontdekt die het een lokale gebruiker mogelijk maakt om code op kernel-niveau uit te voeren en zijn privileges in het systeem te verhogen. Het probleem wordt veroorzaakt door een double-free fout in de nf_tables-module, die de werking van de nftables packet filter verzorgt. De beveiligingsonderzoeker die de kwetsbaarheid ontdekte, heeft een werkende proof-of-concept exploit ontwikkeld en gepubliceerd.

De werking van de exploit is gedemonstreerd in actuele versies van Debian en Ubuntu met Linux-kernels 5.14 - 6.6, evenals in een omgeving met de KernelCTF (Capture the Flag) kernel, die extra patches bevat om standaard exploit-methoden te blokkeren en die door Google wordt gebruikt in zijn beloningsprogramma voor het vinden van kwetsbaarheden. De succesratio van de exploit wordt geschat op 99,4%. In het bijbehorende artikel wordt het proces van het maken van een complexe, meervoudige exploit gedetailleerd besproken, evenals hoe de aanwezige beveiligingsmechanismen in de kernel worden omzeild.

Kwetsbaarheden in de Linux-kernel die het mogelijk maken om privileges te verhogen via nf_tables en ksmbd

Het probleem is gerelateerd aan een fout in de functie nft_verdict_init(), die het gebruik van positieve waarden als foutcode voor het afwijzen van pakketten (DROP) in hooks toestaat, wat kan worden gebruikt om in de functie nf_hook_slow() een tweede geheugen vrijgave operatie voor een buffer uit te voeren, waarvoor al de functie free() is aangeroepen. Het probleem ontstaat wanneer de NF_DROP operatie met een fout wordt gevormd en de kernel in eerste instantie NF_DROP interpreteert, maar vervolgens de buffer vrijgeeft en de status NF_ACCEPT teruggeeft. Deze situatie leidt ertoe dat, ondanks de vrijgave van de aan het pakket gekoppelde buffer, de verwerking ervan niet wordt stopgezet, maar wordt doorgegeven aan een andere handler die op zijn beurt de geheugen vrijgave functie voor de tweede keer aanroept.

De kwetsbaarheid doet zich voor vanaf versie 3.15 van de Linux-kernel, maar de exploit werkt met kernels vanaf versie 5.14. De oplossing voor de kwetsbaarheid is voorgesteld in de release van de Linux-kernel 6.8-rc1 en eind februari overgebracht naar de stabiele takken 5.15.149, 6.1.76 en 6.6.15. In de distributies kan men het oplossen van de kwetsbaarheid volgen op de pagina's van: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Daarnaast kan een reeks kwetsbaarheden in de ksmbd-module worden opgemerkt, die een ingebouwde implementatie van bestandsdeling in de Linux-kernel aanbiedt. de server Gebaseerd op het SMB-protocol: Kwetsbaarheid CVE-2024-26592 maakt het mogelijk om op afstand zonder authenticatie code met kernelrechten uit te voeren op systemen met de ksmbd-module ingeschakeld. Het probleem wordt veroorzaakt door een raceconditie in de code voor het verwerken van TCP-verbindingen, die optreedt door het ontbreken van de juiste vergrendelingen bij het werken met het object.

Kwetsbaarheid CVE-2023-52440 maakt het ook mogelijk om op afstand code met kernelrechten uit te voeren, maar wordt veroorzaakt door een bufferoverloop bij het verwerken van onjuiste sessiesleutels als gevolg van het ontbreken van de juiste controle van de grootte van de gegevens die van de gebruiker zijn ontvangen voordat deze in een buffer van vaste grootte worden gekopieerd.

De kwetsbaarheden (1, 2, 3) CVE-2024-26594, CVE-2023-52442 en CVE-2023-52441 in ksmbd stellen in staat om op afstand zonder authenticatie de inhoud van het kernelgeheugen te bepalen. Kwetsbaarheid CVE-2024-26594 wordt veroorzaakt door onjuiste gegevenscontrole bij het verwerken van binnenkomende SMB2 Mech-tokens, wat leidt tot het retourneren van gegevens buiten het buffergebied. Kwetsbaarheid CVE-2023-52442 wordt veroorzaakt door het ontbreken van de juiste controle van invoergegevens bij het verwerken van chained aanvragen. Kwetsbaarheid CVE-2023-52441 wordt veroorzaakt door het ontbreken van de noodzakelijke controle van invoergegevens bij het verwerken van aanvragen voor het opzetten van een SMB2-verbinding.

De kwetsbaarheden CVE-2024-26594 en CVE-2024-26592 zijn verholpen in kernelversie 6.8 en in correctie-updates van eerdere stabiele versies 6.1.75, 6.6.14, 6.7.2. De overige kwetsbaarheden zijn verholpen in kernelversie 6.5 en updates 5.15.145, 6.1.53, 6.4.16.

Tot slot kan de activatie van het nieuwe team van Linux-kernelontwikkelaars worden genoemd, dat is opgericht om kwetsbaarheden te analyseren en de relatie tussen aangebrachte wijzigingen in de kernel en beveiligingsproblemen te beoordelen. In februari heeft het kernelteam een eigen CNA (CVE Numbering Authority) opgericht, die de bevoegdheid heeft gekregen om zelfstandig CVE-identificaties aan kwetsbaarheden toe te kennen. Voorheen viel de toewijzing van CVE en de analyse van de relatie tussen correcties en mogelijke kwetsbaarheden onder de verantwoordelijkheden van de distributeurs, en in de kernel bleven potentiĆ«le kwetsbaarheden niet gemarkeerd en werden ze behandeld als gewone correcties. De resultaten van de nieuwe dienst hebben alle verwachtingen overtroffen — dagelijks worden in de kernel tot enkele tientallen nieuwe kwetsbaarheden gemeld, die eerder niet als beveiligingsproblemen werden aangemerkt. Bijvoorbeeld, op 26 maart zijn er nieuwe CVE-identificaties toegewezen aan 14 kwetsbaarheden die eerder niet werden beschouwd als beveiligingsproblemen, en op 25 maart — 41 kwetsbaarheden.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster