V utilite e2fsck, ktorá je súčasťou balíka , (), ktorá umožňuje spustenie škodlivého kódu pri kontrole súborového systému obsahujúceho špeciálne vytvorené adresáre. Táto zraniteľnosť bola potvrdená vo verziách 1.43.3 až 1.45.4. Zraniteľnosť bola opravená v aktualizácii. Problém zostáva v distribúciách nevyriešený (, , , , ).
Zraniteľnosť je spôsobená chybou vo funkcii mutate_name() zo súboru rehash.c, ktorá sa používa na prebudovanie hašovacích tabuliek súvisiacich s adresármi, ktoré mapujú všetky súbory v adresári na tento adresár. Poškodenie štruktúry hash_entry súvisiacej s adresárom môže viesť k zápisu údajov útočníka do oblasti mimo alokovanej vyrovnávacej pamäte. Ak sa v hašovacej tabuľke zistí viacero súborov s rovnakým názvom, utilita e2fsck premenuje duplicitné súbory pridaním ~0, ~1 atď. Na zásobníku je alokovaná 256-bajtová vyrovnávacia pamäť na dočasné uloženie nového názvu počas takéhoto premenovania.
Veľkosť kopírovaných údajov je určená výrazom „entry->name_len & 0xff“, ale hodnota entry->name_len sa načíta zo štruktúry disku, a nie sa vypočíta na základe skutočnej veľkosti názvu. Ak je veľkosť nulová, index poľa sa nastaví na -1, čím sa vytvoria podmienky pre podtečenie celého čísla a prepísanie ostatných údajov na zásobníku hodnotou „~0“. Pre 64-bitové systémy sa zneužitie tejto zraniteľnosti považuje za nepravdepodobné a nevyžaduje žiadne obmedzenia veľkosti zásobníka (ulimit -s unlimited). Pre 32-bitové systémy sa zneužitie považuje za možné, ale výsledok silne závisí od toho, ako kompilátor skompiloval spustiteľný súbor.
Na vykonanie útoku musí útočník nejakým spôsobom poškodiť dáta na oddieli so súborovým systémom ext2, ext3 alebo ext4. Keďže táto operácia vyžaduje oprávnenia superpoužívateľa, táto zraniteľnosť predstavuje hrozbu pri skenovaní externých diskov alebo externe získaných obrazov súborových systémov pomocou nástroja e2fsck.
Zdroj: opennet.ru
