Ranjivost u XFS-u koja omogućuje čitanje neobrađenih blok podataka uređaja

U kodu XFS datotečnog sustava identificirana je ranjivost (CVE-2021-4155) koja lokalnom neprivilegiranom korisniku omogućuje čitanje neiskorištenih blok podataka izravno s blok uređaja. Sve glavne verzije Linux kernela starije od 5.16 koje sadrže XFS upravljački program zahvaćene su ovim problemom. Popravak je uključen u verziju 5.16, kao i u ažuriranja kernela 5.15.14, 5.10.91, 5.4.171, 4.19.225 itd. Status ažuriranja koja se generiraju za rješavanje problema u distribucijama može se pratiti na ovim stranicama: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Ranjivost je uzrokovana neispravnim ponašanjem dva ioctl(XFS_IOC_ALLOCSP) i ioctl(XFS_IOC_FREESP) specifična za XFS, koji su funkcionalni analogni sistemski poziv fallocate() na razini kernela. Kada povećavate veličinu datoteke koja nije usklađena s blokovima, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP ne resetira zadnje bajtove na nulu do sljedeće granice bloka. Stoga, na XFS-u sa standardnom veličinom bloka od 4096 bajtova, napadač može pročitati do 4095 bajtova prethodno zapisanih podataka iz svakog bloka. Ta područja mogu sadržavati podatke iz izbrisanih datoteka, defragmentiranih datoteka i datoteka s dedupliciranim blokovima.

Možete testirati svoj sustav na problem pomoću jednostavnog prototipa iskorištavanja. Ako je nakon izvršenja predloženog niza naredbi moguće pročitati Shakespeareov tekst, tada je FS upravljački program ranjiv. Početno montiranje XFS particije za demonstraciju zahtijeva root povlastice.

Budući da su ioctl(XFS_IOC_ALLOCSP) i ioctl(XFS_IOC_FREESP) praktički iste funkcionalnosti kao standardni fallocate(), a jedina im je razlika curenje podataka, njihova je prisutnost slična stražnjim vratima. Unatoč općoj politici da se ne mijenjaju postojeća sučelja u kernelu, na prijedlog Linusa, odlučeno je da se ovi ioctl-i potpuno uklone u sljedećoj verziji.

Izvor: opennet.ru

Dodajte komentar