E2fsck utiliidis, mis on osa pakist , (), mis vĂ”imaldab rĂŒndajal saada koodi tĂ€itmise Ă”iguse, kui kontrollitakse failisĂŒsteemi, mis sisaldab erikujundusega katalooge. Haavatavust on kinnitatud versioonides 1.43.3 kuni 1.45.4. Haavatavus on kĂ”rvaldatud uuenduses . Distroodes jÀÀb probleem veel lahendamata (, , , , ).
Haavatavus on tingitud veast funktsioonis mutate_name() failis rehash.c, mis rakendatakse seotud katalooge puudutavate hash-tabelite taastamisel, tagades katalooge kĂ”igi seal sisalduvate failide vastandamise. Kataloogiga seotud struktuuri hash_entry kahjustamine vĂ”ib viia rĂŒndaja andmete kirjutamiseni mĂ€lupiirkonda, mis ei ole reserveeritud. Kui hash-tabelis tuvastatakse mitu failide sidumist ĂŒhe ja sama nimega, siis e2fsck utiliit nimetab dubleerivad failid ĂŒmber, lisades nimele ~0, ~1 jne. Sellise ĂŒmbernimetamise ajaks reserveeritakse 256 baitine puhver, et ajutiselt hoida uut nime.
Kopeeritava andmete suurus mÀÀratakse vĂ€ljendi «entry->name_len & 0xff» kaudu, kuid vÀÀrtus entry->name_len laaditakse struktuurist kettal, mitte ei arvutata tegeliku nime suuruse pĂ”hjal. Kui suurus on null, siis massiivi indeks muutub -1-ks ning tekivad tingimused, mis vĂ”imaldavad tĂ€isarvu ĂŒlevoolu lĂ€bi puhverdamise ala allÀÀne (integer underflow) ja muude andmete ĂŒlekirjutamist tĂŒkis vÀÀrtusega â~0â. 64-bitistes sĂŒsteemides on haavatavuse ekspluateerimine hinnatud madalaks ja nĂ”uab, et mĂ€lulocks ei oleks piiratud (ulimit -s unlimited). 32-bitistes sĂŒsteemides peetakse ekspluateerimist vĂ”imalikuks, kuid tulemus sĂ”ltub tugevalt sellest, kuidas tĂ”lgitud fail on koostatud.
RĂŒnnaku teostamiseks peab rĂŒndaja teatud viisil kahjustama andmeid ext2, ext3 vĂ”i ext4 failisĂŒsteemis. Kuna see operatsioon nĂ”uab superkasutaja Ă”igusi, kujutab haavatavus ohtu, kui e2fsck utiliit kontrollib vĂ€liseid salvestusseadmeid vĂ”i vĂ€ljaletsitud failisĂŒsteemide kujutisi.
Allikas: opennet.ru
