اطلاعاتی درباره دو آسیبپذیری در بوتلودر GRUB2 فاش شده است که میتواند منجر به اجرای کد در هنگام استفاده از فونتهای طراحیشده خاص و پردازش توالیهای یونیکد خاص شود. آسیبپذیریها میتوانند برای دور زدن مکانیسم راهاندازی تأییدشده UEFI Secure Boot استفاده شوند.
آسیب پذیری های شناسایی شده:
- CVE-2022-2601 - یک سرریز بافر در تابع grub_font_construct_glyph() هنگام پردازش فونت های طراحی شده ویژه در قالب pf2، که به دلیل محاسبه نادرست پارامتر max_glyph_size و تخصیص یک ناحیه حافظه که آشکارا کوچکتر از حد لازم است رخ می دهد. گلیف ها را در نظر بگیرید.
- CVE-2022-3775 هنگام رندر کردن برخی از دنبالههای یونیکد در فونتهایی با سبک خاص، نوشتن خارج از کران اتفاق میافتد. مشکل در کد پردازش فونت است و به دلیل عدم بررسی مناسب برای اطمینان از مطابقت عرض و ارتفاع علامت با اندازه بیت مپ موجود است. یک مهاجم می تواند ورودی را به گونه ای ایجاد کند که باعث شود دم داده ها در خارج از بافر اختصاص داده شده نوشته شود. خاطرنشان می شود که با وجود پیچیدگی بهره برداری از آسیب پذیری، آوردن مشکل به اجرای کد مستثنی نیست.
رفع مشکل به صورت پچ منتشر شده است. وضعیت حذف آسیبپذیریها در توزیعها را میتوان در این صفحات ارزیابی کرد: اوبونتو، SUSE، RHEL، فدورا، دبیان. برای رفع مشکلات در GRUB2، فقط به روز رسانی بسته کافی نیست، بلکه باید امضاهای دیجیتال داخلی جدید و نصب کننده های به روز رسانی، بوت لودرها، بسته های هسته، سیستم عامل fwupd و لایه شیم تولید کنید.
اکثر توزیعهای لینوکس از یک لایه شیم کوچک که به صورت دیجیتالی توسط مایکروسافت امضا شده است برای بوت تأیید شده در حالت بوت امن UEFI استفاده میکنند. این لایه GRUB2 را با گواهینامه خود تأیید می کند، که به توسعه دهندگان توزیع اجازه می دهد تا هر هسته و به روز رسانی GRUB را تأیید شده توسط مایکروسافت نداشته باشند. آسیبپذیریها در GRUB2 به شما این امکان را میدهند که پس از تأیید موفقیتآمیز شیم، به اجرای کد خود در مرحله دست یابید، اما قبل از بارگذاری سیستمعامل، زمانی که حالت Secure Boot فعال است، به زنجیره اعتماد متصل شوید و کنترل کامل بر فرآیند بوت بعدی، از جمله بارگذاری سیستم عامل دیگر، اصلاح سیستم اجزای سیستم عامل و دور زدن حفاظت از قفل.
برای مسدود کردن آسیبپذیری بدون لغو امضای دیجیتال، توزیعها میتوانند از مکانیسم SBAT (UEFI Secure Boot Advanced Targeting) استفاده کنند که برای GRUB2، shim و fwupd در اکثر توزیعهای محبوب لینوکس پشتیبانی میشود. SBAT به طور مشترک با مایکروسافت توسعه یافته است و شامل اضافه کردن ابرداده اضافی به فایل های اجرایی اجزای UEFI است که شامل اطلاعات سازنده، محصول، مؤلفه و نسخه است. ابرداده مشخص شده با امضای دیجیتال تایید شده است و می تواند به طور جداگانه در لیست اجزای مجاز یا ممنوع برای UEFI Secure Boot گنجانده شود.
SBAT به شما این امکان را می دهد که استفاده از امضای دیجیتال را برای شماره نسخه های جداگانه بدون نیاز به لغو کلیدهای Secure Boot مسدود کنید. مسدود کردن آسیبپذیریها از طریق SBAT نیازی به استفاده از فهرست لغو گواهی UEFI (dbx) ندارد، بلکه در سطح جایگزینی کلید داخلی برای تولید امضا و بهروزرسانی GRUB2، شیم و سایر مصنوعات بوت ارائه شده توسط توزیعها انجام میشود. قبل از معرفی SBAT، به روز رسانی لیست ابطال گواهی (dbx، فهرست لغو UEFI) یک پیش نیاز برای مسدود کردن کامل آسیب پذیری بود، زیرا یک مهاجم، صرف نظر از سیستم عامل مورد استفاده، می توانست از رسانه قابل بوت با نسخه آسیب پذیر قدیمی GRUB2 استفاده کند. دارای گواهی امضای دیجیتال، برای به خطر انداختن بوت امن UEFI.
منبع: opennet.ru