XFS-i haavatavus, mis võimaldab lugeda toorploki seadme andmeid

XFS-failisüsteemi koodis on tuvastatud haavatavus (CVE-2021-4155), mis võimaldab kohalikul privilegeerimata kasutajal lugeda kasutamata plokiandmeid otse plokkseadmest. See probleem mõjutab kõiki suuremaid Linuxi kerneli versioone, mis on vanemad kui 5.16 ja sisaldavad XFS-draiverit. Parandus sisaldus versioonis 5.16, aga ka kerneli värskendustes 5.15.14, 5.10.91, 5.4.171, 4.19.225 jne. Distributsioonide probleemi lahendamiseks genereeritavate värskenduste olekut saab jälgida järgmistel lehtedel: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Haavatavuse põhjuseks on kahe XFS-spetsiifilise ioctl(XFS_IOC_ALLOCSP) ja ioctl(XFS_IOC_FREESP) ebaõige käitumine, mis on kerneliülese fallocate() süsteemikutse funktsionaalsed analoogid. Kui suurendate faili suurust, mis ei ole ploki järgi joondatud, ei lähtesta ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP sababaite nulli enne järgmise plokipiirini. Seega saab ründaja XFS-is, mille ploki standardsuurus on 4096 baiti, lugeda igast plokist kuni 4095 baiti varasemaid kirjutatud andmeid. Need alad võivad sisaldada andmeid kustutatud failidest, defragmenteeritud failidest ja deduplikeeritud plokkidega failidest.

Saate oma süsteemi probleemi suhtes testida, kasutades lihtsat kasutusprototüüpi. Kui pärast pakutud käskude jada täitmist on võimalik Shakespeare'i teksti lugeda, on FS-draiver haavatav. Esialgu XFS-i partitsiooni ühendamine tutvustamiseks nõuab administraatoriõigusi.

Kuna ioctl(XFS_IOC_ALLOCSP) ja ioctl(XFS_IOC_FREESP) on funktsionaalsuselt praktiliselt samad, mis standardne fallocate() ja nende ainus erinevus on andmete lekkimine, on nende olemasolu sarnane tagauksega. Vaatamata üldisele poliitikale mitte muuta kernelis olemasolevaid liideseid, otsustati Linuse ettepanekul need ioctl-id järgmises versioonis täielikult eemaldada.

Allikas: opennet.ru

Lisa kommentaar