e2fsck pažeidžiamumas apdorojant specialiai sukurtus katalogus

e2fsck programoje, kuri pateikiama kaip pakuotės dalis e2fsprogs, nustatyta pažeidžiamumas (CVE-2019-5188), kuri leidžia vykdyti užpuoliko kodą tikrinant failų sistemą, kurioje yra specialiai sukurti katalogai. Pažeidžiamumas buvo patvirtintas 1.43.3–1.45.4 leidimuose. Pažeidžiamumas ištaisytas atnaujinant e2fsck 1.45.5. Paskirstymo rinkiniuose problema vis tiek lieka neištaisyta (debian, Arch Linux, SUSE / openSUSE, ubuntu, RHEL).

Pažeidžiamumą sukelia klaida mute_name() faile rehash.c, kuri naudojama atkuriant maišos lenteles, susietas su katalogu, užtikrinant, kad visi kataloge esantys failai būtų suderinti su katalogu. Sugadinus su katalogu susietą hash_entry struktūrą, užpuolikas gali įrašyti duomenis į sritį, esančią už paskirto buferio ribų. Jei maišos lentelėje identifikuojami keli failai tuo pačiu pavadinimu kaip susieti su katalogu, programa e2fsck pervadina pasikartojančius failus, prie pavadinimo pridėdama ~0, ~1 ir kt. Norint laikinai išsaugoti naują pavadinimą tokio pervadinimo metu, krūvoje priskiriamas 256 baitų dydžio buferis.

Kopijuojamų duomenų dydis nustatomas pagal išraišką "įrašas->vardas_len & 0xff", tačiau įrašo->vardas_len reikšmė įkeliama iš disko struktūros, o ne apskaičiuojama pagal faktinį pavadinimo dydį. Jei dydis lygus nuliui, tada masyvo indeksas įgauna reikšmę -1 ir sukuriamos sąlygos perpildyti sveikąjį skaičių per apatinę buferio ribą (sveiko skaičiaus perpildymas) ir perrašyti kitus krūvos duomenis reikšme „~0“. 64 bitų sistemose pažeidžiamumo išnaudojimas vertinamas kaip mažai tikėtinas ir nereikalauja jokių dėklo dydžio apribojimų (ulimit -s unlimited). Manoma, kad 32 bitų sistemose išnaudojimas yra įmanomas, tačiau rezultatas labai priklauso nuo to, kaip kompiliatorius sudarė vykdomąjį failą.

Norėdami įvykdyti ataką, užpuolikas turi tam tikru būdu sugadinti duomenis skaidinyje su ext2, ext3 arba ext4 failų sistema. Kadangi šiai operacijai reikia supervartotojo privilegijų, pažeidžiamumas kelia grėsmę, kai programa e2fsck nuskaito išorinius diskus arba iš išorės gautus FS vaizdus.

Šaltinis: opennet.ru

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