XFS-ում խոցելիություն, որը թույլ է տալիս կարդալ չմշակված բլոկ սարքի տվյալները

XFS ֆայլային համակարգի կոդում հայտնաբերվել է խոցելիություն (CVE-2021-4155), որը թույլ է տալիս տեղային արտոնյալ օգտվողին կարդալ չօգտագործված արգելափակման տվյալները անմիջապես արգելափակման սարքից: Linux միջուկի բոլոր հիմնական տարբերակները, որոնք ավելի հին են, քան 5.16-ը, որոնք պարունակում են XFS դրայվեր, տուժում են այս խնդրից: Ֆիքսը ներառվել է 5.16 տարբերակում, ինչպես նաև միջուկի թարմացումներում 5.15.14, 5.10.91, 5.4.171, 4.19.225 և այլն: Բաշխումներում խնդիրը շտկելու համար ստեղծվող թարմացումների կարգավիճակը կարելի է հետևել այս էջերում՝ Debian, RHEL, SUSE, Fedora, Ubuntu, Arch:

Խոցելիությունը պայմանավորված է XFS-ին հատուկ ioctl(XFS_IOC_ALLOCSP) և ioctl(XFS_IOC_FREESP) սխալ վարքագծով, որոնք միջուկի լայնածավալ fallocate() համակարգի կանչի ֆունկցիոնալ անալոգն են: Ֆայլի չափը մեծացնելիս, որը բլոկ-հավասարեցված չէ, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP-ը չի զրոյացնում պոչային բայթերը մինչև հաջորդ բլոկի սահմանը: Այսպիսով, 4096 բայթ ստանդարտ բլոկի չափով XFS-ում հարձակվողը կարող է կարդալ մինչև 4095 բայթ նախկին գրավոր տվյալներ յուրաքանչյուր բլոկում: Այս տարածքները կարող են պարունակել տվյալներ ջնջված ֆայլերից, դեֆրագրված ֆայլերից և կրկնօրինակված բլոկներով ֆայլերից:

Դուք կարող եք ստուգել ձեր համակարգը խնդրի համար՝ օգտագործելով պարզ շահագործման նախատիպը: Եթե ​​հրամանների առաջարկվող հաջորդականությունը կատարելուց հետո հնարավոր լինի կարդալ Շեքսպիրի տեքստը, ապա FS դրայվերը խոցելի է։ Սկզբում XFS միջնորմը ցուցադրելու համար պահանջում են արմատային արտոնություններ:

Քանի որ ioctl(XFS_IOC_ALLOCSP) և ioctl(XFS_IOC_FREESP) գործնականում նույնն են ֆունկցիոնալությամբ, ինչ ստանդարտ fallocate(), և նրանց միակ տարբերությունը տվյալների արտահոսքն է, նրանց ներկայությունը նման է հետևի դռանը: Չնայած միջուկում գոյություն ունեցող ինտերֆեյսները չփոխելու ընդհանուր քաղաքականությանը, Լինուսի առաջարկով որոշվեց ամբողջությամբ հեռացնել այս ioctl-ները հաջորդ տարբերակում։

Source: opennet.ru

Добавить комментарий