CVE-2026-93256 in Linux
Tóm tắt
Bởi VulDB • 24/09/2026
Trong nhân Linux, các lỗ hổng sau đây đã được khắc phục:
arm64: Hibernate: Masking DAIF trước khi khôi phục kernel bị ngủ đông (hibernate)
Mã nguồn xử lý chế độ ngủ đông trên kiến trúc arm64 quản lý việc che chắn ngoại lệ một cách không đúng đắn, dẫn đến nguy cơ gây ra các lỗi crash và/hoặc cảnh báo trong quá trình resume.
Khi hình ảnh ngủ đông được lưu vào `swsusp_arch_suspend()`, tất cả các ngoại lệ DAIF đều bị che chắn (nhờ hàm `local_daif_save()`), và hình ảnh đã tạm ngưng hoạt động được lưu với giả định rằng tất cả các ngoại lệ DAIF sẽ vẫn bị che chắn khi hình ảnh này được khôi phục.
Khi một hình ảnh ngủ đông được resume bởi `swsusp_arch_resume()`, chỉ có ngắt (interrupts) mới bị che chắn (nhờ hàm `local_irq_disable()` trong `resume_target_kernel()`). Khi chế độ pseudo-NMI được bật, các bit DAIF.IF sẽ ở trạng thái clear, và bất kể việc kích hoạt pseudo-NMI hay không, các bit DAIF.DA cũng sẽ ở trạng thái clear.
Điều này dẫn đến hai vấn đề:
(1) Có khả năng xảy ra ngoại lệ Debug, SError hoặc pseudo-NMI trong quá trình resume. Điều này là không an toàn vì trong suốt quá trình resume, cả kernel cũ và kernel mới đều tạm thời ở trạng thái không nhất quán (inconsistent), và `swsusp_arch_suspend_exit()` sẽ không duy trì ánh xạ thực thi của bất kỳ vector ngoại lệ nào.
Bất kỳ ngoại lệ nào xảy ra tại đây đều sẽ gây lỗi nghiêm trọng và im lặng.
(2) Khi quay lại kernel đã được resume, một số bit DAIF sẽ bị clear ngoài ý muốn. Điều này cho phép các ngoại lệ Debug, SError hoặc pseudo-NMI có thể xảy ra trong một khoảng thời gian ngắn khi kernel đang resumed chưa ở trạng thái nhất quán.
Vấn đề này được phát hiện bởi `CONFIG_ARM64_DEBUG_PRIORITY_MASKING`.
Tránh các vấn đề trên bằng cách che chắn tất cả các ngoại lệ DAIF trong quá trình resume.
If you want to get best quality of vulnerability data, you may have to visit VulDB.