Thông tin đã được tiết lộ về hai lỗ hổng trong bộ tải khởi động GRUB2, có thể dẫn đến việc thực thi mã khi sử dụng các phông chữ được thiết kế đặc biệt và xử lý các chuỗi Unicode nhất định. Các lỗ hổng có thể được sử dụng để vượt qua cơ chế khởi động được xác minh của UEFI Secure Boot.
Các lỗ hổng được xác định:
- CVE-2022-2601 - Lỗi tràn bộ đệm trong hàm grub_font_construct_glyph() khi xử lý các phông chữ được thiết kế đặc biệt ở định dạng pf2, xảy ra do tính toán sai tham số max_glyph_size và việc phân bổ vùng bộ nhớ rõ ràng là nhỏ hơn mức cần thiết để chứa các glyph.
- CVE-2022-3775 Lỗi ghi ngoài giới hạn xảy ra khi hiển thị một số chuỗi Unicode bằng phông chữ có kiểu dáng đặc biệt. Vấn đề nằm ở mã xử lý phông chữ và nguyên nhân là do thiếu kiểm tra thích hợp để đảm bảo rằng chiều rộng và chiều cao của glyph phù hợp với kích thước của bitmap có sẵn. Kẻ tấn công có thể tạo đầu vào theo cách khiến phần đuôi của dữ liệu được ghi ra bên ngoài bộ đệm được phân bổ. Cần lưu ý rằng mặc dù việc khai thác lỗ hổng rất phức tạp nhưng việc đưa vấn đề vào quá trình thực thi mã vẫn không bị loại trừ.
Bản vá lỗi đã được phát hành. Bạn có thể đánh giá trạng thái vá lỗi trong các bản phân phối trên các trang này: UbuntuSUSE, RHEL, Fedora, DebianKhắc phục sự cố GRUB2 không chỉ đơn thuần là cập nhật gói phần mềm; mà còn cần tạo chữ ký số nội bộ mới và cập nhật trình cài đặt, bộ nạp khởi động, gói nhân hệ điều hành, phần mềm fwupd và lớp trung gian (shim layer).
Trong hầu hết LinuxCác bản phân phối dành cho chế độ khởi động được xác thực trong UEFI Secure Boot sử dụng một lớp trung gian nhỏ, được Microsoft ký số. Lớp này xác minh GRUB2 bằng chứng chỉ riêng của nó, loại bỏ nhu cầu các nhà phát triển bản phân phối phải thông báo cho Microsoft về mọi bản cập nhật kernel và GRUB. Các lỗ hổng trong GRUB2 cho phép thực thi mã tùy ý sau khi xác minh lớp trung gian thành công, nhưng trước khi hệ điều hành khởi động. Điều này cho phép kẻ tấn công phá vỡ chuỗi tin cậy khi Secure Boot được bật và giành quyền kiểm soát hoàn toàn quá trình khởi động tiếp theo, bao gồm khởi động một hệ điều hành khác, sửa đổi các thành phần hệ điều hành và vượt qua cơ chế bảo vệ Lockdown.
Để ngăn chặn lỗ hổng mà không cần thu hồi chữ ký số, các bản phân phối có thể sử dụng cơ chế SBAT (UEFI Secure Boot Advanced Targeting), cơ chế này đã được hỗ trợ cho GRUB2, shim và fwupd trong hầu hết các bản phân phối phổ biến. LinuxSBAT được phát triển với sự hợp tác của Microsoft và bao gồm việc thêm siêu dữ liệu bổ sung vào các tệp thực thi thành phần UEFI, bao gồm thông tin về nhà sản xuất, sản phẩm, thành phần và phiên bản. Siêu dữ liệu này được ký điện tử và có thể được đưa riêng vào danh sách các thành phần được cho phép hoặc bị từ chối đối với Khởi động An toàn UEFI.
SBAT cho phép bạn chặn việc sử dụng chữ ký số cho số phiên bản thành phần riêng lẻ mà không cần phải thu hồi khóa cho Secure Boot. Việc chặn lỗ hổng thông qua SBAT không yêu cầu sử dụng danh sách thu hồi chứng chỉ UEFI (dbx), nhưng được thực hiện ở cấp độ thay thế khóa nội bộ để tạo chữ ký và cập nhật GRUB2, shim và các tạo phẩm khởi động khác do các bản phân phối cung cấp. Trước khi giới thiệu SBAT, việc cập nhật danh sách thu hồi chứng chỉ (dbx, Danh sách thu hồi UEFI) là điều kiện tiên quyết để chặn hoàn toàn lỗ hổng bảo mật, vì kẻ tấn công, bất kể hệ điều hành được sử dụng, đều có thể sử dụng phương tiện có khả năng khởi động với phiên bản GRUB2 cũ dễ bị tấn công, được chứng nhận bằng chữ ký số, để xâm phạm UEFI Secure Boot .
Nguồn: opennet.ru
