BTR: Lỗ hổng Spectre-v2 mới cho phép đánh cắp dữ liệu bộ nhớ Linux
Một nhóm nghiên cứu vừa công bố lỗ hổng Spectre-v2 mới mang tên Branch Target Reuse (BTR), cho phép kẻ tấn công vượt qua các biện pháp bảo vệ hiện có để trích xuất dữ liệu nhạy cảm từ bộ nhớ...
Một nhóm các nhà nghiên cứu từ VUSec và Scuola Superiore Sant’Anna vừa tiết lộ chi tiết về một biến thể lỗ hổng Spectre mới, ảnh hưởng đến các công cụ Just-In-Time (JIT) trong trình duyệt web, môi trường thực thi ngôn ngữ và nhân hệ điều hành trên nhiều dòng CPU khác nhau.
Biến thể Spectre-v2 mới này được đặt tên là Branch Target Reuse (BTR). Theo các nhà nghiên cứu, vấn đề cốt lõi nằm ở chỗ dù các CPU hiện đại khôi phục tính nhất quán của mã kiến trúc sau khi tự sửa đổi (self-modification), chúng lại không vô hiệu hóa các mục dự đoán nhánh gián tiếp (indirect branch prediction entries) đã cũ.
Trong các công cụ JIT, những mục tiêu dự đoán cũ này có thể tồn tại lâu hơn mã gốc và bị tái sử dụng khi bộ nhớ đệm mã (code cache) được nạp lại. Điều này tạo ra một cơ chế transient execute-after-free, cho phép kẻ tấn công chiếm quyền điều khiển luồng thực thi tạm thời để truy cập vào các đoạn mã tại những vị trí lỗi thời, từ đó vượt qua các biện pháp bảo mật phần mềm.
Nhóm nghiên cứu đã thử nghiệm BTR trên SpiderMonkey (công cụ JIT của Mozilla Firefox), GraalVM và cBPF JIT của nhân Linux. Kết quả cho thấy tất cả đều bị ảnh hưởng, dù mức độ khai thác và tốc độ rò rỉ dữ liệu có sự khác biệt. Trong một thử nghiệm thực tế (proof-of-concept), các chuyên gia đã chứng minh khả năng khôi phục mật khẩu root trên hệ thống Intel đã được vá đầy đủ chỉ trong vài phút.
Spectre là lớp lỗ hổng bảo mật CPU khai thác kỹ thuật thực thi suy đoán (speculative execution) để đánh lừa bộ xử lý truy cập vào dữ liệu nhạy cảm thông qua các kênh bên (side channel) của bộ nhớ đệm. BTR đặc biệt nguy hiểm vì nó khai thác sự tương tác giữa mã tự sửa đổi (SMC) và dự đoán nhánh gián tiếp.
Quy trình tấn công diễn ra theo các bước:
- Kẻ tấn công lừa công cụ JIT cấp phát một khối huấn luyện và buộc nhánh nạn nhân nhảy tới đó, tạo ra một mục trong Branch Target Buffer (BTB).
- Kẻ tấn công buộc giải phóng khối huấn luyện và cấp phát một khối mục tiêu mới trùng lặp địa chỉ.
- Khi kích hoạt lại nhánh gián tiếp, CPU sử dụng mục BTB cũ (đã lỗi thời) và thực thi suy đoán vào điểm bắt đầu của khối huấn luyện cũ.
- Kết quả là luồng điều khiển bị chiếm quyền và dữ liệu bí mật bị lộ.
Các bản vá cho lỗ hổng BTR đã được hợp nhất vào nhân Linux (thông qua các mã định danh CVE-2026-64507 và CVE-2026-64508). Trong khi đó, GraalVM thực hiện cơ chế xáo trộn vị trí bộ nhớ đệm mã JIT để ngăn chặn việc tái sử dụng vùng nhớ, còn Mozilla đang ưu tiên hoàn thiện tính năng cách ly trang web (site isolation) để giảm thiểu rủi ro.
Nguồn tham khảo: The Hacker News



No Comment! Be the first one.