Dina utilitas e2fsck anu disayogikeun sareng pakét , (), anu ngamungkinkeun palaksanaan kode jahat nalika mariksa sistem file anu ngandung diréktori anu didamel khusus. Kerentanan ieu dikonfirmasi dina rilis 1.43.3 dugi ka 1.45.4. Kerentanan ieu parantos dibenerkeun dina apdet. Masalahna tetep teu acan direngsekeun dina distribusi (, , , , ).
Karentanan ieu disababkeun ku kasalahan dina fungsi mutate_name() tina file rehash.c, anu dianggo pikeun ngawangun deui tabel hash anu aya hubunganana sareng diréktori, anu memetakan sadaya file dina hiji diréktori ka dinya. Karusakan struktur hash_entry anu aya hubunganana sareng diréktori tiasa nyababkeun data panyerang ditulis ka daérah di luar buffer anu dialokasikeun. Upami sababaraha file kalayan nami anu sami dideteksi dina tabel hash, utilitas e2fsck ngarobih nami file duplikat ku nambihan ~0, ~1, sareng saterasna kana nami éta. Buffer 256-byte dialokasikeun dina tumpukan pikeun nyimpen nami énggal samentawis salami ngaganti nami sapertos kitu.
Ukuran data anu disalin ditangtukeun ku éksprési "entry->name_len & 0xff," tapi nilai entry->name_len dimuat tina struktur disk tinimbang diitung dumasar kana ukuran nami anu saleresna. Upami ukuranana nol, indéks array disetel ka -1, nyiptakeun kaayaan pikeun underflow integer sareng nimpa data sanés dina tumpukan kalayan nilai "~0." Pikeun sistem 64-bit, éksploitasi kerentanan ieu dianggap teu mungkin sareng henteu meryogikeun larangan ukuran tumpukan (ulimit -s unlimited). Pikeun sistem 32-bit, éksploitasi dianggap mungkin, tapi hasilna gumantung pisan kana kumaha file anu tiasa dieksekusi dikompilasi ku kompiler.
Pikeun ngalaksanakeun serangan, panyerang kedah ngaruksak data dina partisi anu nganggo sistem file ext2, ext3, atanapi ext4. Kusabab operasi ieu meryogikeun hak aksés superuser, kerentanan ieu mangrupikeun ancaman nalika nyeken drive éksternal atanapi gambar sistem file anu diala sacara éksternal nganggo utilitas e2fsck.
sumber: opennet.ru
