Dirty Pipe, en av de allvarligaste sårbarheterna på flera år i Linux

Nyligen kom nyheten online om upptäckten av en ny sårbarhet i Linux som kategoriseras som "Hög allvarlighetsgrad" och påverkar alla kärnor från version 5.8 och framåt, samt derivator, inklusive Android.

Känd som Dirty Pipe, tillåter den överskrivning av data i skrivskyddade filer och kan leda till privilegieupptrappning genom att injicera kod i "root"-processer.

Även om den redan har patchats i Linux-kärnan, kan buggen vara beväpnad i form av en privilegieupptrappning på alla enheter som kör Linux-kärnan version 5.8 eller senare.

Det betyder också att ett gäng nyligen släppta Android-smarttelefoner, som Samsung Galaxy S22 och Google Pixel 6, också är sårbara, tills varje enhet får rätt kärnpatch från respektive OEM.

Om Dirty Pipe

Sårbarheten avslöjades av säkerhetsforskaren Max Kellerman och katalogiserades som (CVE-2022-0847); det tog några månader att hitta ett koncepttest.

Sårbarheten gör det möjligt för en oprivilegierad användare att injicera och skriva över data i skrivskyddade filer, inklusive SUID-processer som körs som root. Det vardagliga smeknamnet verkar vara en lek med den ökända Dirty Cow- buggen och en Linux-mekanism som kallas pipelining för att skicka meddelanden mellan processer, eftersom den senare används under exploitrutinen.

Allt började för ett år sedan med en supportbiljett relaterad till korrupta filer. En kund klagade på att nedladdade åtkomstloggar inte kunde packas upp. Och det fanns faktiskt en korrupt loggfil på en av loggservrarna; det kunde vara okomprimerat, men gzip rapporterade ett CRC-fel. Jag kunde inte förklara varför den var korrupt, men jag antog att den nattliga uppdelningsprocessen hade kraschat och producerat en korrupt fil. Jag korrigerade filens CRC manuellt, stängde biljetten och glömde snart bort problemet.

Efter månader av analys upptäckte forskaren äntligen att de korrupta klientfilerna var resultatet av en bugg i Linuxkärnan. Han hittade ett sätt att utnyttja Dirty Pipe för att tillåta vem som helst med ett konto, inklusive mindre privilegierade "ingen"-konton, att lägga till en SSH-nyckel till root-användarens konto.

För att utlösa sårbarheten delade Kellerman sitt proof of concept, angriparen måste ha läsbehörighet. Rullning får inte heller vara på en sidgräns, skrivning kan inte passera en sidgräns och filen kan inte ändras.

För att utnyttja denna sårbarhet måste du: skapa en pipe, fylla pipen med godtycklig data (genom att sätta flaggan PIPE_BUF_FLAG_CAN_MERGE på alla poster i ringen), tömma pipen (låt flaggan vara kvar på alla instanser av pipe_buffer-strukturen i strukturen av pipe_inode_info-ringen), slå samman data från målfilen (öppnad med O_RDONLY) till pipen precis före målförskjutningen och skriv godtycklig data till pipen.

Dirty Pipe påverkar också alla versioner av Android baserade på en av de sårbara versionerna av Linux-kärnan. Eftersom Android är så fragmenterat kan berörda enhetsmodeller inte spåras enhetligt.

Enligt Kellermann integrerade Google sin buggfix i Android-kärnan förra månaden, strax efter att den åtgärdades med lanseringen av Linux-kärnversionerna 5.16.11, 5.15.25 och 5.10.102.

Med det sagt måste vi förmodligen vänta lite innan OEM-tillverkare börjar rulla ut Android-uppdateringar som innehåller fixen. Googles Pixel 6, till exempel, är fortfarande sårbar, men avancerade användare kan mildra felet genom att installera en anpassad korrigerad eftermarknadskärna som ett alternativ.

Linuxkärnutvecklarna släppte korrigeringar (5.16.11, 5.15.25, 5.10.102) den 23 februari, medan Google uppdaterade Androidkärnan den 24 februari. Kellermann och andra experter jämförde sårbarheten med CVE-2016-5195 "Dirty Cow" och sa att den är ännu enklare att utnyttja.

Slutligen, om du är intresserad av att lära dig mer, kan du hitta detaljerna på följande länk.


Lägg till som prioriterad källa i Google