Linux-ydintä kehittää maailman suurin avoimen koodin kehittäjien joukko. Koodista löytyy korjattavaa, mutta varsin harvoin varsinaisia haavoittuvuuksia, jotka ovat riksejä järjestelmälle. Niitäkin kuitenkin löytyy. Sellainen on esimerkiksi Dirty Pipe -niminen haavoittuvuus.
Tietoturvatutkija Max Kellermann CM4all-hostausyrityksestä törmäsi bugiin, kun asiakkaan Linux-koneeseen alkoi ilmestyä korruptoituneita tiedostoja. Kellermann selvitti kuukausia kaikkia mahdollisia syitä, minkä takia sivupyyntöjen lokitiedostoihin ilmestyi korruptoituneita tiedostoja. Lopulta syyksi osoittautui haavoittuvuus Linux-kernelissä.
Haavoittuvuus on ilmestynyt Linux-ytimeen versiossa 5.8, joka julkaistiin elokuussa 2020. Se on korjattu versioiden 5.16.11, 5.15.25 ja 5.10.102 julkaisun myötä. Haavoittuvuus on mukana myös kaikissa Android-versioissa, jotka perustuvat 5.8-kerneliin. Tällainen on esimerkiksi Samsungin uusi Galaxy S22 -sarja, jonka Android 12 -käyttöjärjestelmä perustuu Linuxin versioon 5.10.43.
Dirty Pipe johtuu alustamattomasta muuttujasta, jonka avulla hyökkääjä voi korvata minkä tahansa välimuistissa olevan tiedoston sisällön. Dirty Pipe voi tehdä tämän, vaikka tiedostoon ei voisi kirjoittaa. Haavoittuvuuden nimen ”Pipe" viittaa liukuhihnaan (pipeline) eli Linux-mekanismiin, jolla yksi käyttöjärjestelmäprosessi lähettää tietoja toiselle prosessille. Pohjimmiltaan liukuhihna on kaksi tai useampi prosessi, jotka on ketjutettu yhteen siten, että yhden prosessin tuotos välitetään suoraan syötteenä seuraavaan.
Haavoittuvuuden avulla hyökkääjä voisi lisätä SSH-avaimen juuri- eli pääkäyttäjän tilille. Tämän avulla hyökkääjä voisi avata SSH-yhteyden koneelle täysin oikeuksin. Haavoittuvuus on yksi vakavimpia viime vuosina Linux-ytimestä löytyneitä.
Onneksi sen hyödyntäminen vaatii useita asiantiloja toimiakseen. Hyökkääjällä pitää esimerkiksi olla kirjoitusoikeudet koneelle. Tiedoston kokoa ei lisäksi voi muuttaa, koska haavoittuvuus hyödyntää Linuxin muistinhallintaa. Tiedoston koon kasvattaminen kirjoittaa uuden sivun (page) muistihallinnassa.
Aukko on siis paikattu, mutta uhkaa edelleen monia paikkaamattomiin ytimiin perustuvia laitteita. Dirty Pipe -haavoittuvuuteen voi tutustua Max Kellermannin seikkaperäisessä blogissa.