Փաթեթի հետ մատակարարվող 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 օգտակար ծրագրով ստուգելիս:
Source: opennet.ru
