Pakendi osana tarnitavas utiliidis e2fsck , (), mis vĂ”imaldab spetsiaalselt loodud katalooge sisaldava failisĂŒsteemi kontrollimisel kĂ€ivitada rĂŒndaja koodi. Haavatavus kinnitati versioonides 1.43.3 kuni 1.45.4. VĂ€rskenduses parandatud haavatavus . Jaotuskomplektides on probleem endiselt lahendamata (, , , , ).
Haavatavuse pĂ”hjuseks on viga funktsioonis mute_name() failis rehash.c, mida kasutatakse kataloogiga seotud rĂ€sitabelite ĂŒmberehitamisel, tagades, et kĂ”ik kataloogis olevad failid sobituvad kataloogiga. Kataloogiga seotud struktuuri hash_entry rikkumine vĂ”ib pĂ”hjustada selle, et rĂŒndaja kirjutab andmeid eraldatud puhvrist vĂ€ljapoole jÀÀvasse piirkonda. Kui rĂ€sitabelis tuvastatakse mitu sama nimega faili, mis on lingitud kataloogiga, nimetab utiliit e2fsck duplikaatfailid ĂŒmber, lisades nimele ~0, ~1 jne. Uue nime ajutiseks salvestamiseks sellise ĂŒmbernimetamise ajal eraldatakse virnale 256 baiti suurune puhver.
Kopeeritavate andmete suuruse mÀÀrab avaldis "entry->name_len & 0xff", kuid kirje kirje->nimi_len vÀÀrtus laaditakse ketta struktuurist, mitte ei arvutata nime tegeliku suuruse jĂ€rgi. Kui suurus on null, siis massiivi indeks vĂ”tab vÀÀrtuse -1 ja luuakse tingimused tĂ€isarvu ĂŒletĂ€itumiseks lĂ€bi puhvri alumise piiri (tĂ€isarvu alampiiri) ja teiste virna andmete ĂŒlekirjutamiseks vÀÀrtusega â~0â. 64-bitiste sĂŒsteemide puhul hinnatakse haavatavuse Ă€rakasutamist ebatĂ”enĂ€oliseks ja see ei nĂ”ua pinu suuruse piiranguid (ulimit -s unlimited). 32-bitiste sĂŒsteemide puhul peetakse Ă€rakasutamist vĂ”imalikuks, kuid tulemus sĂ”ltub suuresti sellest, kuidas kompilaator kĂ€ivitatava faili koostas.
RĂŒnnaku lĂ€biviimiseks peab rĂŒndaja ext2, ext3 vĂ”i ext4 failisĂŒsteemiga partitsioonis olevad andmed teatud viisil rikkuma. Kuna see toiming nĂ”uab superkasutaja Ă”igusi, kujutab haavatavus endast ohtu, kui utiliit e2fsck skannib vĂ€liseid draive vĂ”i vĂ€liselt vastuvĂ”etud FS-pilte.
Allikas: opennet.ru
