Ứng dụng của Giá trị Sentinel trong Chrome V8 và những rủi ro an ninh của nó
Trong động cơ V8 có nhiều đối tượng Sentinel Value đặc biệt, như TheHole và Uninitialized Oddball. Những đối tượng này không nên bị tiết lộ ra môi trường JavaScript, nhưng một số lỗ hổng có thể dẫn đến việc chúng bị phơi bày, gây ra vấn đề an ninh.
Gần đây, các nhà nghiên cứu đã phát hiện ra rằng việc rò rỉ các đối tượng Uninitialized Oddball có thể vượt qua cơ chế bảo vệ HardenType của V8. Phương pháp này lần đầu tiên xuất hiện trong một báo cáo vấn đề được thành viên nhóm Project Zero gửi, hiện vẫn hiệu quả trong phiên bản mới nhất của V8.
Phương pháp vượt qua này có tính phổ quát, có thể được sử dụng cho nhiều lỗ hổng lịch sử, chẳng hạn như CVE-2021-30551, CVE-2022-1486, v.v. Nó giảm độ khó trong việc khai thác lỗ hổng, khiến chỉ cần rò rỉ đối tượng Uninitialized Oddball cũng có thể dẫn đến việc thực thi mã từ xa.
Để xác thực phương pháp này, có thể sửa đổi hàm native %TheHole() của V8, khiến nó trả về đối tượng Uninitialized Oddball. Các thử nghiệm cho thấy, điều này thực sự có thể thực hiện việc đọc bộ nhớ tương đối tùy ý.
Trong mã JavaScript đã được tối ưu hóa, V8 không kiểm tra đầy đủ loại phần tử của mảng, mà tính toán và trả về giá trị trực tiếp theo độ lệch, dẫn đến việc nhầm lẫn loại và đọc tùy ý. Đề xuất thêm kiểm tra đối với map mảng trong quá trình tối ưu hóa để tránh tình huống này.
Việc phát hiện ra phương pháp vượt qua này đã làm nổi bật một số vấn đề quan trọng:
Các đối tượng Sentinel Value khác bị rò rỉ cũng có thể nguy hiểm.
Việc các vấn đề liên quan có nên được coi là lỗ hổng bảo mật chính thức hay không vẫn còn gây tranh cãi.
Trong thử nghiệm mờ, có thể xem xét việc đưa Giá trị Sentinel vào như một biến.
Dù sao đi nữa, những vấn đề này sẽ rút ngắn đáng kể thời gian mà hacker có thể khai thác triệt để, điều này rất đáng được chú ý. Các nhà sản xuất phần mềm liên quan nên nhanh chóng khắc phục các phiên bản bị ảnh hưởng để giảm thiểu rủi ro tiềm ẩn.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
8 thích
Phần thưởng
8
4
Đăng lại
Chia sẻ
Bình luận
0/400
TerraNeverForget
· 7giờ trước
Trình duyệt lại gặp vấn đề lớn rồi.
Xem bản gốcTrả lời0
BearHugger
· 7giờ trước
Lại là một lỗ hổng của V8? Lỗi này thật sự quá vô lý.
Xem bản gốcTrả lời0
MintMaster
· 7giờ trước
Ôi trời ơi, hãy tìm hiểu về lỗ hổng cốt lõi này.
Xem bản gốcTrả lời0
RebaseVictim
· 7giờ trước
Lại là hố của Chrome, lại gặp sự cố thường ngày...
Rò rỉ Giá trị Sentinel V8 Engine gây ra rủi ro an ninh, cần cảnh giác
Ứng dụng của Giá trị Sentinel trong Chrome V8 và những rủi ro an ninh của nó
Trong động cơ V8 có nhiều đối tượng Sentinel Value đặc biệt, như TheHole và Uninitialized Oddball. Những đối tượng này không nên bị tiết lộ ra môi trường JavaScript, nhưng một số lỗ hổng có thể dẫn đến việc chúng bị phơi bày, gây ra vấn đề an ninh.
Gần đây, các nhà nghiên cứu đã phát hiện ra rằng việc rò rỉ các đối tượng Uninitialized Oddball có thể vượt qua cơ chế bảo vệ HardenType của V8. Phương pháp này lần đầu tiên xuất hiện trong một báo cáo vấn đề được thành viên nhóm Project Zero gửi, hiện vẫn hiệu quả trong phiên bản mới nhất của V8.
Phương pháp vượt qua này có tính phổ quát, có thể được sử dụng cho nhiều lỗ hổng lịch sử, chẳng hạn như CVE-2021-30551, CVE-2022-1486, v.v. Nó giảm độ khó trong việc khai thác lỗ hổng, khiến chỉ cần rò rỉ đối tượng Uninitialized Oddball cũng có thể dẫn đến việc thực thi mã từ xa.
Để xác thực phương pháp này, có thể sửa đổi hàm native %TheHole() của V8, khiến nó trả về đối tượng Uninitialized Oddball. Các thử nghiệm cho thấy, điều này thực sự có thể thực hiện việc đọc bộ nhớ tương đối tùy ý.
Trong mã JavaScript đã được tối ưu hóa, V8 không kiểm tra đầy đủ loại phần tử của mảng, mà tính toán và trả về giá trị trực tiếp theo độ lệch, dẫn đến việc nhầm lẫn loại và đọc tùy ý. Đề xuất thêm kiểm tra đối với map mảng trong quá trình tối ưu hóa để tránh tình huống này.
Việc phát hiện ra phương pháp vượt qua này đã làm nổi bật một số vấn đề quan trọng:
Dù sao đi nữa, những vấn đề này sẽ rút ngắn đáng kể thời gian mà hacker có thể khai thác triệt để, điều này rất đáng được chú ý. Các nhà sản xuất phần mềm liên quan nên nhanh chóng khắc phục các phiên bản bị ảnh hưởng để giảm thiểu rủi ro tiềm ẩn.