Երկու խոցելիություն GRUB2-ում, որոնք թույլ են տալիս շրջանցել UEFI Secure Boot-ի պաշտպանությունը

Տեղեկություն է բացահայտվել GRUB2 բեռնիչի երկու խոցելիության մասին, որոնք կարող են հանգեցնել կոդի կատարման հատուկ նախագծված տառատեսակներ օգտագործելիս և Unicode-ի որոշակի հաջորդականություններ մշակելիս: Խոցելիությունները կարող են օգտագործվել UEFI Secure Boot ստուգված բեռնման մեխանիզմը շրջանցելու համար:

Հայտնաբերված խոցելիություններ.

  • CVE-2022-2601 - բուֆերային հոսք grub_font_construct_glyph() ֆունկցիայում, երբ մշակվում են հատուկ նախագծված տառատեսակներ pf2 ձևաչափով, որը տեղի է ունենում max_glyph_size պարամետրի սխալ հաշվարկի և հիշողության տարածքի հատկացման պատճառով, որն ակնհայտորեն ավելի փոքր է, քան անհրաժեշտ է: տեղավորել գլիֆները.
  • CVE-2022-3775 Սահմաններից դուրս գրություն տեղի է ունենում Unicode-ի որոշ հաջորդականություններ հատուկ ոճավորված տառատեսակով արտապատկերելիս: Խնդիրը տառատեսակի մշակման կոդի մեջ է և առաջանում է պատշաճ ստուգումների բացակայության պատճառով՝ համոզվելու համար, որ հոլովակի լայնությունն ու բարձրությունը համապատասխանում են հասանելի բիթքարտեզի չափերին: Հարձակվողը կարող է մուտքագրել այնպես, որ պատճառ դառնա, որ տվյալների պոչը գրվի հատկացված բուֆերի արտաքին մասում: Նշվում է, որ չնայած խոցելիության օգտագործման բարդությանը, չի բացառվում խնդիրը հասցնել կոդերի կատարման։

Ուղղումը հրապարակվել է որպես կարկատել: Բաշխումների խոցելիության վերացման կարգավիճակը կարելի է գնահատել այս էջերում՝ Ubuntu, SUSE, RHEL, Fedora, Debian: GRUB2-ում խնդիրները շտկելու համար բավական չէ միայն թարմացնել փաթեթը, դուք նաև պետք է գեներացնեք նոր ներքին թվային ստորագրություններ և թարմացման տեղադրողներ, բեռնիչներ, միջուկային փաթեթներ, fwupd որոնվածը և շիմ շերտը:

Linux-ի բաշխումների մեծամասնությունը օգտագործում է Microsoft-ի կողմից թվային ստորագրված փոքր շերտ՝ UEFI Secure Boot ռեժիմում ստուգված բեռնման համար: Այս շերտը ստուգում է GRUB2-ն իր սեփական վկայականով, որը թույլ է տալիս բաշխման մշակողներին չունենալ Microsoft-ի կողմից վավերացված միջուկի և GRUB-ի բոլոր թարմացումները: GRUB2-ի խոցելիությունը թույլ է տալիս հասնել ձեր կոդի գործարկմանը այն փուլում, երբ հաջողվում է «shim» ստուգումը, բայց նախքան օպերացիոն համակարգը բեռնելը, վստահության շղթայի մեջ մտնել, երբ «Secure Boot» ռեժիմն ակտիվ է և լիարժեք վերահսկողություն ձեռք բերել հետագա բեռնման գործընթացի վրա, ներառյալ. բեռնել մեկ այլ ՕՀ, փոփոխել օպերացիոն համակարգի բաղադրիչների համակարգը և շրջանցել Lockdown պաշտպանությունը:

Խոցելիությունը արգելափակելու համար՝ առանց թվային ստորագրությունը չեղյալ հայտարարելու, բաշխումները կարող են օգտագործել SBAT (UEFI Secure Boot Advanced Targeting) մեխանիզմը, որն աջակցվում է GRUB2-ի, shim-ի և fwupd-ի համար ամենահայտնի Linux բաշխումներում: SBAT-ը մշակվել է Microsoft-ի հետ համատեղ և ներառում է լրացուցիչ մետատվյալների ավելացում UEFI բաղադրիչների գործարկվող ֆայլերին, որոնք ներառում են տեղեկատվություն արտադրողի, արտադրանքի, բաղադրիչի և տարբերակի մասին: Նշված մետատվյալները վավերացված են թվային ստորագրությամբ և կարող են առանձին ներառվել UEFI Secure Boot-ի թույլատրված կամ արգելված բաղադրիչների ցանկում:

SBAT-ը թույլ է տալիս արգելափակել թվային ստորագրությունների օգտագործումը առանձին բաղադրիչների տարբերակների համարների համար՝ առանց Secure Boot-ի բանալիները չեղարկելու: SBAT-ի միջոցով խոցելիության արգելափակումը չի պահանջում UEFI վկայականի չեղյալ հայտարարման ցուցակի (dbx) օգտագործումը, այլ իրականացվում է ներքին բանալին փոխարինելու մակարդակով՝ ստորագրություններ ստեղծելու և GRUB2-ը, շիմը և բաշխումների կողմից տրամադրվող այլ բեռնախցիկները թարմացնելու համար: Մինչ SBAT-ի ներդրումը վկայագրերի չեղյալ հայտարարման ցուցակի թարմացումը (dbx, UEFI Revocation List) նախապայման էր խոցելիությունն ամբողջությամբ արգելափակելու համար, քանի որ հարձակվողը, անկախ օգտագործվող օպերացիոն համակարգից, կարող էր օգտագործել bootable մեդիա GRUB2-ի հին խոցելի տարբերակով: վավերացված է թվային ստորագրությամբ՝ UEFI Secure Boot-ը խախտելու համար:

Source: opennet.ru

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