Bloke gordinaren gailuaren datuak irakurtzeko aukera ematen duen XFS-n ahultasuna

XFS fitxategi-sistemaren kodean ahultasun bat (CVE-2021-4155) identifikatu da, pribilegiorik gabeko tokiko erabiltzaile bati blokeo-gailu batetik zuzenean erabili gabeko bloke-datuak irakurtzeko aukera ematen diona. XFS kontrolatzailea duten 5.16 baino zaharragoak diren Linux kernelaren bertsio nagusi guztiak arazo honek eragiten ditu. Konponketa 5.16 bertsioan sartu zen, baita 5.15.14, 5.10.91, 5.4.171, 4.19.225 eta abar nukleoen eguneraketetan ere. Banaketan arazoa konpontzeko sortzen ari diren eguneratzeen egoera orri hauetan jarrai daiteke: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Ahulkortasuna XFS-ren berariazko bi ioctl(XFS_IOC_ALLOCSP) eta ioctl(XFS_IOC_FREESP) portaera okerrek eragiten dute, zeinak kernel osorako fallocate() sistema-deiaren analogo funtzionalak diren. Blokeetan lerrokatuta ez dagoen fitxategi-tamaina handitzean, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP-ek ez ditu buztaneko byteak zerora berrezartzen hurrengo blokearen mugara arte. Horrela, 4096 byte-ko bloke-tamaina estandarra duen XFS-n, erasotzaileak aurreko idatzitako 4095 byte irakur ditzake bloke bakoitzeko. Eremu hauek ezabatutako fitxategien, desfragmentatutako fitxategien eta desbikoiztutako blokeen fitxategien datuak izan ditzakete.

Zure sistema proba dezakezu ustiapen prototipo sinple bat erabiliz. Proposatutako komandoen sekuentzia exekutatu ondoren Shakespeareren testua irakurtzea posible bada, orduan FS kontrolatzailea zaurgarria da. Hasieran XFS partizio bat erakusteko muntatzeak root pribilegioak behar ditu.

ioctl(XFS_IOC_ALLOCSP) eta ioctl(XFS_IOC_FREESP) fallocate() estandarraren funtzionalitatean ia berdinak direnez eta haien desberdintasun bakarra datuen ihesa denez, haien presentzia atzeko ate baten antzekoa da. Nukleoan dauden interfazeak ez aldatzeko politika orokorra izan arren, Linusek proposatuta, hurrengo bertsioan ioctl hauek guztiz kentzea erabaki zen.

Iturria: opennet.ru

Gehitu iruzkin berria