Tavis Ormandy, nhà nghiên cứu bảo mật tại Google, đã xác định được một lỗ hổng mới (CVE-2023-23583) trong bộ xử lý Intel, có tên mã là Reptar, lỗ hổng này chủ yếu gây ra mối đe dọa cho các hệ thống đám mây chạy máy ảo của những người dùng khác nhau. Lỗ hổng này khiến hệ thống bị treo hoặc gặp sự cố khi một số thao tác nhất định được thực hiện trên hệ thống khách không có đặc quyền. Để kiểm tra hệ thống của bạn, một tiện ích đã được xuất bản nhằm tạo điều kiện cho các lỗ hổng xuất hiện.
Về mặt lý thuyết, lỗ hổng này có thể được sử dụng để nâng cấp đặc quyền từ vòng bảo vệ thứ ba lên vòng bảo vệ 0 (CPLXNUMX) và thoát khỏi môi trường bị cô lập, nhưng kịch bản này vẫn chưa được xác nhận trên thực tế do khó khăn trong việc gỡ lỗi ở cấp độ vi kiến trúc. Đánh giá nội bộ tại Intel cũng cho thấy khả năng khai thác lỗ hổng để nâng cao đặc quyền trong một số điều kiện nhất định.
Theo nhà nghiên cứu, lỗ hổng này hiện diện trong các dòng bộ xử lý Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake và Sapphire Rapids. Báo cáo của Intel đề cập rằng sự cố xuất hiện bắt đầu từ bộ xử lý Intel Core thế hệ thứ 10 (Ice Lake) và bộ xử lý Xeon Scalable thế hệ thứ ba, cũng như trong bộ xử lý Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell , Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) và Atom (Hồ Apollo, Hồ Jasper, Bãi biển Arizona, Hồ Alder, Parker Ridge, Snow Ridge, Hồ Elkhart và Denverton). Lỗ hổng được đề cập đã được sửa trong bản cập nhật vi mã 20231114 ngày hôm qua.
Lỗ hổng này xảy ra do trong một số trường hợp vi kiến trúc nhất định, việc thực thi lệnh “REP MOVSB” được mã hóa với tiền tố “REX” quá mức, dẫn đến hành vi không xác định. Vấn đề được phát hiện trong quá trình kiểm tra các tiền tố dư thừa, về mặt lý thuyết nên bỏ qua, nhưng trên thực tế đã dẫn đến những hiệu ứng lạ, chẳng hạn như bỏ qua các nhánh vô điều kiện và phá vỡ việc lưu con trỏ trong lệnh xsave và call. Phân tích sâu hơn cho thấy rằng việc thêm tiền tố dự phòng vào lệnh "REP MOVSB" sẽ gây ra lỗi nội dung của bộ đệm ROB (Bộ đệm sắp xếp lại) được sử dụng để sắp xếp các lệnh.
Người ta tin rằng lỗi xảy ra do tính toán không chính xác kích thước của lệnh "MOVSB", dẫn đến việc vi phạm địa chỉ của các lệnh được ghi vào bộ đệm ROB sau MOVSB với tiền tố quá mức và phần bù của con trỏ lệnh. Việc giải đồng bộ hóa như vậy có thể bị hạn chế ở việc làm gián đoạn các tính toán trung gian với việc khôi phục trạng thái tích hợp sau đó. Nhưng nếu bạn làm hỏng nhiều lõi hoặc luồng SMT cùng một lúc, bạn có thể làm hỏng trạng thái vi kiến trúc đến mức dẫn đến sự cố.
Nguồn: opennet.ru
