XFS pažeidžiamumas, leidžiantis nuskaityti neapdorotus bloko įrenginio duomenis

XFS failų sistemos kode buvo nustatytas pažeidžiamumas (CVE-2021-4155), leidžiantis vietiniam neprivilegijuotam vartotojui nuskaityti nepanaudotus bloko duomenis tiesiai iš bloko įrenginio. Ši problema turi įtakos visoms pagrindinėms Linux branduolio versijoms, senesnėms nei 5.16, kuriose yra XFS tvarkyklė. Pataisa buvo įtraukta į 5.16 versiją, taip pat į branduolio naujinimus 5.15.14, 5.10.91, 5.4.171, 4.19.225 ir kt. Atnaujinimų, generuojamų siekiant išspręsti platinimo problemą, būseną galima stebėti šiuose puslapiuose: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Pažeidžiamumą sukelia neteisingas dviejų XFS specifinių ioctl (XFS_IOC_ALLOCSP) ir ioctl (XFS_IOC_FREESP), kurie yra viso branduolio fallocate () sistemos iškvietimo funkcinis analogas, elgesys. Padidinus failo dydį, kuris nėra suderintas su blokais, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP nenustato uodegos baitų iki nulio iki kitos bloko ribos. Taigi, naudojant XFS, kurio standartinis bloko dydis yra 4096 baitai, užpuolikas gali nuskaityti iki 4095 baitų ankstesnių įrašytų duomenų iš kiekvieno bloko. Šiose srityse gali būti duomenų iš ištrintų failų, defragmentuotų failų ir failų, kurių blokai panaikinti.

Galite patikrinti, ar sistemoje nėra problemos, naudodami paprastą išnaudojimo prototipą. Jei įvykdžius siūlomą komandų seką galima perskaityti Šekspyro tekstą, vadinasi, FS tvarkyklė yra pažeidžiama. Iš pradžių norint demonstruoti XFS skaidinį, reikia root teisių.

Kadangi ioctl(XFS_IOC_ALLOCSP) ir ioctl(XFS_IOC_FREESP) funkcionalumu praktiškai nesiskiria standartiniam fallocate(), o vienintelis skirtumas yra duomenų nutekėjimas, jų buvimas panašus į užpakalines duris. Nepaisant bendros politikos nekeisti esamų sąsajų branduolyje, Linuso siūlymu, buvo nuspręsta visiškai pašalinti šiuos ioctls kitoje versijoje.

Šaltinis: opennet.ru

Добавить комментарий