Az e2fsck segédprogramban, amely az e2fsprogs csomag részeként érkezik , (), amely lehetővé teszi a rosszindulatú kód végrehajtását a fájlrendszer ellenőrzése során, amely speciálisan kialakított könyvtárakat tartalmaz. A sebezhetőség az 1.43.3 és 1.45.4 közötti verziókban megerősített. A sebezhetőséget az . A disztribúciókban a probléma továbbra is megoldatlan (, , , , ).
A sebezhetőség a rehash.c fájlban található mutate_name() funkció hibájából ered, amely a könyvtárhoz kapcsolódó hash-táblák újraintegrálásakor alkalmazódik, biztosítva a könyvtárhoz tartozó összes fájl illesztését. A könyvtárhoz kapcsolódó hash_entry struktúra sérülése lehetővé teheti a támadó adatainak írását a lefoglalt puffertől kívüli területre. Ha a hash-táblában a könyvtárhoz több fájl is társul azonos névvel, az e2fsck segédprogram átnevezi a duplikált fájlokat, hozzáfűzve a névhez ~0, ~1 stb. A fájl átnevezése során egy 256 bájtos puffert foglalnak le a veremben az új név ideiglenes tárolására.
A másolt adatok méretét a «entry->name_len & 0xff» kifejezés határozza meg, de az entry->name_len értéke a lemezen található struktúrából töltődik be, és nem a név tényleges mérete alapján számítódik ki. Ha a méret nulla, akkor a tömbindex -1 értéket vesz fel, és lehetőséget teremt a pufferméret alatti egész számú túlcsordulásra (integer underflow) és más adatok felülírására a veremben a «~0» értékkel. 64 bites rendszerek esetén a sebezhetőség kihasználása valószínűtlennek minősül, és megköveteli, hogy ne legyenek korlátozások a verem méretében (ulimit -s unlimited). 32 bites rendszerek esetén a kihasználás lehetséges, de az eredmény erősen függ attól, hogy a végrehajtható fájlt hogyan építette meg a fordító.
A támadás végrehajtásához a támadónak különféleképpen kell megsértenie az ext2, ext3 vagy ext4 fájlrendszer adatait. Mivel ez a művelet root jogosultságokat igényel, a sebezhetőség fenyegetést jelent az e2fsck segédprogram által ellenőrzött külső tárolók vagy a külső forrásból származó fájlrendszer képek ellenőrzésekor.
Forrás: opennet.ru
