Een kwetsbaarheid in de VFS van de Linux-kernel waarmee u uw privileges kunt escaleren

Er is een kwetsbaarheid (CVE-2022-0185) geïdentificeerd in de Filesystem Context API die wordt geleverd door de Linux-kernel, waardoor een lokale gebruiker root-rechten op het systeem kan verkrijgen. De onderzoeker die het probleem heeft geïdentificeerd, heeft een demonstratie gepubliceerd van een exploit waarmee je code als root kunt uitvoeren op Ubuntu 20.04 in de standaardconfiguratie. Het is de bedoeling dat de exploitcode binnen een week op GitHub wordt geplaatst nadat de distributies een update hebben uitgebracht die de kwetsbaarheid verhelpt.

Het beveiligingslek bestaat in de legacy_parse_param()-functie in VFS en wordt veroorzaakt door een fout bij het correct controleren van de maximale grootte van parameters op bestandssystemen die de Filesystem Context API niet ondersteunen. Het doorgeven van een parameter die te groot is, kan een overloop veroorzaken van de gehele variabele die wordt gebruikt om de grootte van de te schrijven gegevens te berekenen - de code heeft een bufferoverloopcontrole "if (len > PAGE_SIZE - 2 - size)", wat niet het geval is werkt als de groottewaarde groter is dan 4094. voor overloop van gehele getallen door de ondergrens (onderloop van gehele getallen, bij het casten van 4096 - 2 - 4095 naar niet-ondertekende int, is het resultaat 2147483648).

Deze fout maakt het mogelijk dat bij toegang tot een speciaal ontworpen bestandssysteemimage een bufferoverloop ontstaat en kernelgegevens worden overschreven volgens het toegewezen geheugengebied. Om de kwetsbaarheid te misbruiken, moet u over CAP_SYS_ADMIN-rechten beschikken, d.w.z. beheerdersbevoegdheden. Het probleem is dat een gebruiker zonder rechten dergelijke machtigingen in een geïsoleerde container kan verkrijgen als op het systeem ondersteuning voor gebruikersnaamruimten is ingeschakeld. Gebruikersnaamruimten zijn bijvoorbeeld standaard ingeschakeld op Ubuntu en Fedora, maar niet ingeschakeld op Debian en RHEL (tenzij containerisolatieplatforms worden gebruikt).

Het probleem doet zich voor sinds Linux kernel 5.1 en is opgelost in de updates van gisteren 5.16.2, 5.15.16, 5.10.93, 5.4.173. Pakketupdates die de kwetsbaarheid verhelpen zijn al uitgebracht voor RHEL, Debian, Fedora en Ubuntu. De oplossing is nog niet beschikbaar op Arch Linux, Gentoo, SUSE en openSUSE. Als beveiligingsoplossing voor systemen die geen containerisolatie gebruiken, kunt u de sysctl-waarde "user.max_user_namespaces" instellen op 0: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/sysctl.d/userns.conf

Bron: opennet.ru

Voeg een reactie