XFS:n haavoittuvuus, joka mahdollistaa raakalohkolaitteen tietojen lukemisen

XFS-tiedostojärjestelmäkoodissa on havaittu haavoittuvuus (CVE-2021-4155), jonka avulla paikallinen etuoikeutettu käyttäjä voi lukea käyttämättömiä lohkotietoja suoraan lohkolaitteesta. Tämä ongelma vaikuttaa kaikkiin Linux-ytimen 5.16:ta vanhempiin versioihin, jotka sisältävät XFS-ohjaimen. Korjaus sisältyi versioon 5.16 sekä ytimen päivityksiin 5.15.14, 5.10.91, 5.4.171, 4.19.225 jne. Jakelujen ongelman korjaamiseksi luotujen päivitysten tilaa voidaan seurata näiltä sivuilta: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Haavoittuvuuden aiheuttaa kahden XFS-spesifisen ioctl(XFS_IOC_ALLOCSP) ja ioctl(XFS_IOC_FREESP), jotka ovat ytimen laajuisen fallocate()-järjestelmäkutsun toiminnallinen analogi, virheellisestä käyttäytymisestä. Kun suurennetaan tiedostokokoa, jota ei ole kohdistettu lohkoihin, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP ei nollaa lopputavuja ennen seuraavaa lohkorajaa. Siten XFS:ssä, jonka vakiolohkokoko on 4096 tavua, hyökkääjä voi lukea jopa 4095 tavua aiempia kirjoitettuja tietoja kustakin lohkosta. Nämä alueet voivat sisältää tietoja poistetuista tiedostoista, eheytetyistä tiedostoista ja tiedostoista, joiden lohkot on poistettu.

Voit testata järjestelmäsi ongelman varalta käyttämällä yksinkertaista hyväksikäyttöprototyyppiä. Jos ehdotetun komentosarjan suorittamisen jälkeen on mahdollista lukea Shakespearen tekstiä, FS-ohjain on haavoittuvainen. XFS-osion asentaminen esittelyä varten vaatii pääkäyttäjän oikeudet.

Koska ioctl(XFS_IOC_ALLOCSP) ja ioctl(XFS_IOC_FREESP) ovat toiminnaltaan käytännössä samat kuin tavallisen fallocate(), ja niiden ainoa ero on tietovuoto, niiden läsnäolo on samanlainen kuin takaoven. Huolimatta yleisestä käytännöstä olla muuttamatta ytimen olemassa olevia rajapintoja, Linuksen ehdotuksesta päätettiin poistaa nämä ioctls kokonaan seuraavassa versiossa.

Lähde: opennet.ru

Lisää kommentti