Nylig kom det på nett nyheten om oppdagelsen av en ny sårbarhet i Linux som er kategorisert som «Høy alvorlighetsgrad» og påvirker alle kjerner fra versjon 5.8 og utover, samt derivater, inkludert Android.
Den er kjent som Dirty Pipe, og tillater overskriving av data i skrivebeskyttede filer og kan føre til eskalering av privilegier ved å injisere kode i "root"-prosesser.
Selv om den allerede er lappet inn i hovedlinje-Linux-kjernen, kan feilen være bevæpnet i form av en privilegie-eskaleringsutnyttelse på alle enheter som kjører Linux-kjernen versjon 5.8 eller nyere.
Det betyr også at en haug med nylig utgitte Android-smarttelefoner, som Samsung Galaxy S22 og Google Pixel 6, også er sårbare, inntil hver enhet mottar den riktige kjerneoppdateringen fra den respektive OEM.
Om Dirty Pipe
Sårbarheten ble avslørt av sikkerhetsforsker Max Kellerman og katalogisert som (CVE-2022-0847); det tok noen måneder å finne et konseptutnyttelsessystem.
Sårbarheten lar en ikke-privilegert bruker injisere og overskrive data i skrivebeskyttede filer, inkludert SUID-prosesser som kjører som root. Det dagligdagse kallenavnet ser ut til å være en tolkning av den beryktede Dirty Cow- feilen og en Linux-mekanisme kalt pipelining for å sende meldinger mellom prosesser, ettersom sistnevnte brukes under utnyttelsesrutinen.
Det hele startet for et år siden med en støttebillett relatert til korrupte filer. En kunde klaget over at nedlastede tilgangslogger ikke kunne pakkes ut. Og faktisk var det en korrupt loggfil på en av loggserverne; det kan være ukomprimert, men gzip rapporterte en CRC-feil. Jeg kunne ikke forklare hvorfor den var korrupt, men jeg antok at den nattlige splittprosessen hadde krasjet og produsert en korrupt fil. Jeg korrigerte CRC-en til filen manuelt, lukket billetten og glemte snart problemet.
Etter måneder med analyse oppdaget forskeren endelig at de ødelagte klientfilene var et resultat av en feil i Linux-kjernen. Han fant en måte å utnytte Dirty Pipe på for å tillate alle med en konto, inkludert mindre privilegerte "ingen"-kontoer, å legge til en SSH-nøkkel til root-brukerens konto.
For å utløse sårbarheten delte Kellerman sitt proof of concept, angriperen må ha lesetillatelser. Rulling må heller ikke være på en sidegrense, skriving kan ikke krysse en sidegrense, og filen kan ikke endres.
For å utnytte denne sårbarheten må du: opprette en pipe, fylle pipen med vilkårlige data (ved å sette PIPE_BUF_FLAG_CAN_MERGE-flagget på alle oppføringer i ringen), tømme røret (la flagget være satt på alle forekomster av pipe_buffer-strukturen i strukturen av pipe_inode_info-ringen), slå sammen dataene fra målfilen (åpnet med O_RDONLY) inn i røret rett før målforskyvningen, og skriv vilkårlige data til røret.
Dirty Pipe påvirker også enhver versjon av Android basert på en av de sårbare versjonene av Linux-kjernen. Fordi Android er så fragmentert, kan ikke berørte enhetsmodeller spores jevnt.
Ifølge Kellermann integrerte Google feilrettingen sin i Android-kjernen forrige måned, rett etter at den ble fikset med utgivelsen av Linux-kjernversjonene 5.16.11, 5.15.25 og 5.10.102.
Når det er sagt, må vi nok vente litt før OEM-er begynner å rulle ut Android-oppdateringer som inneholder rettelsen. Googles Pixel 6, for eksempel, er fortsatt sårbar, men avanserte brukere kan dempe feilen ved å installere en tilpasset lappet ettermarkedskjerne som et alternativt alternativ.
Linux-kjerneutviklerne ga ut rettelser (5.16.11, 5.15.25, 5.10.102) 23. februar, mens Google oppdaterte Android-kjernen 24. februar. Kellermann og andre eksperter sammenlignet sårbarheten med CVE-2016-5195 «Dirty Cow» og sa at den er enda enklere å utnytte.
Til slutt, hvis du er interessert i å lære mer, kan du finne detaljene på følgende lenke.