Пакеттин бир бөлүгү катары берилген e2fsck утилитасында , (), бул атайын иштелип чыккан каталогдорду камтыган файл тутумун текшерүүдө чабуулчунун кодун аткарууга мүмкүндүк берет. Алсыздык 1.43.3 - 1.45.4 релиздеринде тастыкталган. Жаңыртууда кемчиликтер оңдолду . Бөлүштүрүүчү топтомдордо көйгөй дагы деле оңдолбогон бойдон калууда (, , , , ).
Алсыздык каталогдогу бардык файлдардын каталогго дал келишин камсыз кылуу үчүн, каталог менен байланышкан хэш таблицаларын кайра курууда колдонулган rehash.c файлындагы mutate_name() функциясындагы катадан улам келип чыгат. Каталог менен байланышкан hash_entry структурасынын бузулушу чабуулчуга бөлүнгөн буферден тышкары аймакка маалыматтарды жазууга алып келиши мүмкүн. Эгерде хэш таблицада бир эле аталыштагы бир нече файлдар каталогго байланышкан деп аныкталса, e2fsck утилитасы атка ~0, ~1 ж.б. кошуу менен кайталанма файлдардын атын өзгөртөт. Мындай атын өзгөртүү учурунда жаңы аталышты убактылуу сактоо үчүн стекке 256 байт өлчөмүндөгү буфер бөлүнөт.
Көчүрүлө турган маалыматтардын өлчөмү "entry->name_len & 0xff" туюнтмасы менен аныкталат, бирок entry->name_len мааниси аталыштын чыныгы өлчөмүнөн эсептелбей, дисктеги структурадан жүктөлөт. Эгерде өлчөм нөлгө барабар болсо, анда массивдин индекси -1 маанисин алат жана буфердин төмөнкү чек арасы аркылуу бүтүн сандардын ашып өтүшү (бүтүн сандын асты агымы) жана стектеги башка маалыматтарды “~0” мааниси менен кайра жазуу үчүн шарттар түзүлөт. 64 биттик системалар үчүн, алсыздыктын эксплуатацияланышы күмөндүү деп бааланат жана стектин өлчөмүнө эч кандай чектөөлөрдү талап кылбайт (ulimit -s unlimited). 32 биттик системалар үчүн эксплуатация мүмкүн деп эсептелет, бирок натыйжа аткарылуучу файл компилятор тарабынан кандайча түзүлгөнүнө абдан көз каранды.
Чабуул жасоо үчүн чабуулчу ext2, ext3 же ext4 файл системасы менен бөлүмдө белгилүү бир жол менен маалыматтарды бузушу керек. Бул операция супер колдонуучу артыкчылыктарын талап кылгандыктан, e2fsck утилитасы тышкы дисктерди же сырттан алынган FS сүрөттөрүн сканерлегенде, аялуу коркунуч жаратат.
Source: opennet.ru
