Dirty Pipe, een van de ernstigste kwetsbaarheden in jaren in Linux

Onlangs is online het nieuws verschenen over de ontdekking van een nieuwe kwetsbaarheid in Linux die als "ernstig" wordt geclassificeerd en alle kernels vanaf versie 5.8 treft, evenals afgeleide versies, waaronder Android.

Deze techniek , ook wel bekend als Dirty Pipe, maakt het mogelijk om gegevens in alleen-lezen bestanden te overschrijven en kan leiden tot privilege-escalatie door code te injecteren in "root"-processen.

Hoewel het al in de belangrijkste Linux-kernel is gepatcht, kan de bug worden gebruikt als wapen in de vorm van een privilege-escalatie-exploit op alle apparaten met Linux-kernelversie 5.8 of hoger.

Het betekent ook dat een aantal nieuw uitgebrachte Android-smartphones, zoals de Samsung Galaxy S22 en Google Pixel 6, ook kwetsbaar zijn, totdat elk apparaat de juiste kernelpatch ontvangt van de respectievelijke OEM.

Over vuile pijp

De kwetsbaarheid werd ontdekt door beveiligingsonderzoeker Max Kellerman en gecatalogiseerd als (CVE-2022-0847); het duurde een paar maanden om een ​​proof-of-concept-exploit te vinden.

De kwetsbaarheid stelt een gebruiker zonder beheerdersrechten in staat om gegevens in alleen-lezen bestanden te injecteren en te overschrijven, inclusief SUID-processen die als root draaien. De bijnaam lijkt een verwijzing te zijn naar de beruchte Dirty Cow- bug en een Linux-mechanisme genaamd pipelining voor het doorgeven van berichten tussen processen, aangezien dat laatste wordt gebruikt tijdens de exploitatieprocedure.

Het begon allemaal een jaar geleden met een supportticket in verband met corrupte bestanden. Een klant klaagde dat gedownloade toegangslogboeken niet konden worden uitgepakt. En inderdaad, er was een beschadigd logbestand op een van de logservers; het kan ongecomprimeerd zijn, maar gzip rapporteerde een CRC-fout. Ik kon niet uitleggen waarom het beschadigd was, maar ik nam aan dat het nachtelijke splitsingsproces was gecrasht en een beschadigd bestand had opgeleverd. Ik corrigeerde handmatig de CRC van het bestand, sloot het ticket en vergat het probleem al snel.

Na maandenlange analyse ontdekte de onderzoeker uiteindelijk dat de beschadigde clientbestanden het gevolg waren van een bug in de Linux-kernel. Hij vond een manier om Dirty Pipe te misbruiken, waardoor iedereen met een account, inclusief minder bevoorrechte "nobody"-accounts, een SSH-sleutel aan het root-gebruikersaccount kon toevoegen.

Om de kwetsbaarheid te activeren, deelde Kellerman zijn proof of concept, de aanvaller moet leesrechten hebben. Scrollen mag ook niet op een paginagrens plaatsvinden, schrijven mag een paginagrens niet overschrijden en het formaat van het bestand kan niet worden gewijzigd.

Om dit beveiligingslek te misbruiken, moet u: een pijplijn maken, de pijplijn vullen met willekeurige gegevens (om de vlag PIPE_BUF_FLAG_CAN_MERGE in te stellen op alle ringingangen), de pijplijn leegmaken (de vlag laten staan ​​op alle instanties van de pipe_bufferstructuur in de pipe_inode_info ringstructuur), de gegevens uit het doelbestand (geopend met O_RDONLY) samenvoegen in de pijp net voor de doeloffset, en willekeurige gegevens naar de pijp schrijven.

Dirty Pipe is ook van invloed op elke versie van Android die is gebaseerd op een van de kwetsbare versies van de Linux-kernel. Omdat Android zo gefragmenteerd is, kunnen de betrokken apparaatmodellen niet uniform worden gevolgd.

Volgens Kellermann heeft Google de bugfix vorige maand in de Android-kernel opgenomen, vlak nadat deze was verholpen met de release van de Linux-kernelversies 5.16.11, 5.15.25 en 5.10.102.

Dat gezegd hebbende, zullen we waarschijnlijk een tijdje moeten wachten voordat OEM's beginnen met het uitrollen van Android-updates die de oplossing bevatten. Google's Pixel 6 is bijvoorbeeld nog steeds kwetsbaar, maar ervaren gebruikers kunnen de fout verhelpen door een gepatchte aangepaste aftermarket-kernel te installeren als een terugvaloptie.

De ontwikkelaars van de Linux-kernel brachten op 23 februari patches uit (5.16.11, 5.15.25, 5.10.102), terwijl Google de Android-kernel op 24 februari patchte. Kellermann en andere experts vergeleken de kwetsbaarheid met CVE-2016-5195 "Dirty Cow" en zeiden dat deze nog gemakkelijker te misbruiken is.

Als u tot slot meer wilt weten, kunt u de details vinden via de volgende link.


Voeg dit toe als voorkeursbron in Google.