Lỗ hổng trong các bản vá của Red Hat đối với bộ tải khởi động GRUB2 cho phép bạn bỏ qua việc xác minh mật khẩu

Thông tin về lỗ hổng (CVE-2023-4001) trong các bản vá dành cho bộ tải khởi động GRUB2 do Red Hat chuẩn bị đã được tiết lộ. Lỗ hổng này cho phép nhiều hệ thống có UEFI bỏ qua kiểm tra mật khẩu được đặt trong GRUB2 để hạn chế quyền truy cập vào menu khởi động hoặc dòng lệnh của bộ tải khởi động. Lỗ hổng này xảy ra do một thay đổi được Red Hat thêm vào gói GRUB2 đi kèm với RHEL và Fedora Linux. Sự cố không xuất hiện trong dự án GRUB2 chính và chỉ ảnh hưởng đến các bản phân phối đã áp dụng các bản vá Red Hat bổ sung.

Sự cố xảy ra do lỗi logic về cách bộ tải khởi động sử dụng UUID để tìm thiết bị có tệp cấu hình (ví dụ: "/boot/efi/EFI/fedora/grub.cfg") có chứa mật khẩu băm. Để bỏ qua xác thực, người dùng có quyền truy cập vật lý vào máy tính có thể kết nối ổ đĩa ngoài, chẳng hạn như USB Flash, đặt nó thành UUID khớp với mã định danh của phân vùng khởi động/khởi động của hệ thống bị tấn công.

Nhiều hệ thống UEFI xử lý ổ đĩa ngoài trước và đặt chúng vào danh sách các thiết bị được phát hiện trước ổ đĩa cố định, do đó phân vùng /boot do kẻ tấn công chuẩn bị sẽ có mức độ ưu tiên xử lý cao hơn và theo đó, GRUB2 sẽ cố tải tệp cấu hình từ phân vùng này. Khi tìm kiếm phân vùng bằng lệnh "tìm kiếm" trong GRUB2, chỉ kết quả khớp UUID đầu tiên được xác định, sau đó quá trình tìm kiếm sẽ dừng lại. Nếu không tìm thấy tệp cấu hình chính trong một phân vùng cụ thể, GRUB2 sẽ đưa ra dấu nhắc lệnh cho phép bạn có toàn quyền kiểm soát phần còn lại của quá trình khởi động.

Tiện ích "lsblk" có thể được sử dụng để xác định UUID của phân vùng bởi người dùng không có đặc quyền cục bộ, nhưng người dùng bên ngoài không có quyền truy cập vào hệ thống nhưng có thể quan sát quá trình khởi động, trên một số bản phân phối, có thể xác định UUID từ chẩn đoán thông báo hiển thị trong khi khởi động. Lỗ hổng đã được Red Hat giải quyết bằng cách thêm một đối số mới vào lệnh "tìm kiếm" cho phép hoạt động quét UUID chỉ bị ràng buộc để chặn các thiết bị được sử dụng để chạy trình quản lý khởi động (tức là phân vùng /boot chỉ phải nằm trên cùng một drive làm phân vùng hệ thống EFI).

Nguồn: opennet.ru

Thêm một lời nhận xét