e2fsck programoje, kuri pateikiama kaip pakuotės dalis
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