e2fsck alətində, e2fsprogs paketinin bir hissəsi olaraq təqdim edilir. , (), sistem fayl sisteminin xüsusi qovluqlar daxil olan fayllarını yoxlama funksiyası yerinə yetirilərkən hücumçunun kodunu icra etməsinə imkan tanıyan zəiflik. Zəifliyin 1.43.3-dən 1.45.4-ə qədər olan versiyalarda mövcud olduğu təsdiqlənmişdir. Zəiflik düzəldildi. . Ditributivlərdə problem hələ də həll olunmamışdır (, , , , ).
Zəiflik, directory hash cədvəllərini yenidən qurma prosesində istifadə olunan mutate_name() funksiyasındakı bir səhvdən irəl gəlir ki, bu da qeyd edilib olan kataloqun içində olan bütün fayllarla uyğunluğu təmin edir. Kataloqa bağlı hash_entry strukturunun pozulması, hücumçunun məlumatlarının ayrılmış buferdən kənarda yazılmasına səbəb ola bilər. Hash cədvəlində eyni adla bir neçə faylın olması vəziyyətində, e2fsck aləti təkrarlanan faylları adın sonuna ~0, ~1 və s. əlavə edərək adını dəyişir. Belə bir yeniden adlandırma üçün yığın üzərində 256 bayt ölçüsündə bir bufer ayrılır.
Kopyalanan məlumatların ölçüsü «entry->name_len & 0xff» ifadəsi ilə müəyyən edilir, amma entry->name_len dəyəri diskdəki strukturdən yüklənir, faktiki adın ölçüsünə əsaslanılaraq hesablanmır. Əgər ölçü sıfır olarsa, massiv indeksi -1 dəyərinə çevrilir və bu, buferin alt həddində tam ədədin aşması (integer underflow) üçün şərtləri yaradır və yığın daxilindəki digər məlumatların «~0» dəyəri ilə yazılmasına səbəb olur. 64-bit sistemlər üçün zəifliyin istismar olunmasının mümkünlüyü azdır və yığının ölçüsündə heç bir məhdudiyyətin olmamasını tələb edir (ulimit -s unlimited). 32-bit sistemlər üçün istismar mümkün hesab olunur, lakin nəticə, icra olunan faylın nə cür toplanmasından asılıdır.
Hücumçu üçün hücumun həyata keçirilməsi üçün ext2, ext3 və ya ext4 FS bölməsindəki məlumatları müəyyən şəkildə zədələmək lazımdır. Bu əməliyyatın superuser imtiyazları tələb etməsi səbəbindən zəiflik, e2fsck aləti tərəfindən xarici yığımların və ya mənbədən əldə edilən FS obrazlarının yoxlanılması zamanı təhlükə yaradır.
Mənbə: opennet.ru
