Bí mật vượt qua sandbox Chrome V8: Sử dụng Sentinel Value để thực thi mã tùy ý
Giá trị Sentinel là giá trị đặc biệt được sử dụng làm điều kiện kết thúc trong thuật toán, tồn tại rộng rãi trong mã nguồn của Chrome. Các nghiên cứu trước đây đã chỉ ra rằng, việc rò rỉ đối tượng TheHole có thể thực hiện việc thực thi mã tùy ý trong sandbox của Chrome. Bài viết này sẽ thảo luận về một phương pháp vượt qua khác chưa được sửa chữa - rò rỉ đối tượng Uninitialized Oddball.
Phương pháp này lần đầu tiên xuất hiện trong Issue1352549 do thành viên Project 0 gửi, hiện vẫn có thể sử dụng trong phiên bản mới nhất của V8. Đáng chú ý là, các vấn đề rò rỉ đối tượng nguyên thủy tương tự đã xuất hiện nhiều lần trong các lỗ hổng quan trọng, như CVE-2021-30551 và CVE-2022-1486. Điều này cho thấy loại vấn đề này có tính phổ quát, có thể ảnh hưởng đến nhiều phần mềm sử dụng động cơ V8.
Hầu hết các đối tượng gốc trong V8 được định nghĩa trong tệp v8/src/roots/roots.h, chúng được sắp xếp theo thứ tự trong bộ nhớ. Một khi những đối tượng không nên bị rò rỉ vào JavaScript bị rò rỉ, điều này có thể dẫn đến việc thoát khỏi sandbox. Chúng ta có thể xác minh phương pháp này bằng cách sửa đổi các hàm native của V8, chẳng hạn như sửa đổi hàm %TheHole() để trả về Uninitialized Oddball.
Phương pháp này có thể vượt qua bảo vệ HardenType, đạt được việc đọc và ghi bộ nhớ tương đối tùy ý. Trong việc triển khai cụ thể, mã JavaScript đã được tối ưu hóa sẽ bỏ qua việc kiểm tra kiểu phần tử mảng, tính toán trực tiếp độ lệch để truy cập bộ nhớ. Vấn đề này có một chút khác biệt trên kiến trúc x86 và x64, nhưng đều có thể bị khai thác.
Lỗ hổng này hiện vẫn chưa được sửa chữa trong một số phần mềm sử dụng động cơ V8 như Skype (, vẫn còn rủi ro an ninh tiềm ẩn. Hacker có thể tận dụng khoảng cách vá lỗi này để thực hiện chuỗi khai thác lỗ hổng hoàn chỉnh.
![Tiết lộ độc quyền về việc vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(
Ngoài Uninitialized Oddball, V8 còn có các giá trị Sentinel khác, chúng cũng có thể gây ra các vấn đề bảo mật tương tự. Điều này gợi ý rằng chúng ta cần xem xét lại ảnh hưởng bảo mật của việc lộ giá trị Sentinel và xem xét việc thêm các biến liên quan vào thử nghiệm mờ. Dù các vấn đề này có được coi là lỗ hổng bảo mật chính thức hay không, chúng có thể rút ngắn đáng kể thời gian mà kẻ tấn công cần để đạt được khai thác hoàn chỉnh.
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp(
![Độc quyền tiết lộ cách vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp(
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-230537e420d579aabd89bdd168b20878.webp(
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-506159c94c9e0988552cbcbd13d971e1.webp(
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-e9e2000fd501b69ee3ee643a459a26dd.webp(
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Lỗ hổng rò rỉ giá trị Sentinel trong động cơ V8: Phân tích vượt qua sandbox của Chrome
Bí mật vượt qua sandbox Chrome V8: Sử dụng Sentinel Value để thực thi mã tùy ý
Giá trị Sentinel là giá trị đặc biệt được sử dụng làm điều kiện kết thúc trong thuật toán, tồn tại rộng rãi trong mã nguồn của Chrome. Các nghiên cứu trước đây đã chỉ ra rằng, việc rò rỉ đối tượng TheHole có thể thực hiện việc thực thi mã tùy ý trong sandbox của Chrome. Bài viết này sẽ thảo luận về một phương pháp vượt qua khác chưa được sửa chữa - rò rỉ đối tượng Uninitialized Oddball.
Phương pháp này lần đầu tiên xuất hiện trong Issue1352549 do thành viên Project 0 gửi, hiện vẫn có thể sử dụng trong phiên bản mới nhất của V8. Đáng chú ý là, các vấn đề rò rỉ đối tượng nguyên thủy tương tự đã xuất hiện nhiều lần trong các lỗ hổng quan trọng, như CVE-2021-30551 và CVE-2022-1486. Điều này cho thấy loại vấn đề này có tính phổ quát, có thể ảnh hưởng đến nhiều phần mềm sử dụng động cơ V8.
Hầu hết các đối tượng gốc trong V8 được định nghĩa trong tệp v8/src/roots/roots.h, chúng được sắp xếp theo thứ tự trong bộ nhớ. Một khi những đối tượng không nên bị rò rỉ vào JavaScript bị rò rỉ, điều này có thể dẫn đến việc thoát khỏi sandbox. Chúng ta có thể xác minh phương pháp này bằng cách sửa đổi các hàm native của V8, chẳng hạn như sửa đổi hàm %TheHole() để trả về Uninitialized Oddball.
Phương pháp này có thể vượt qua bảo vệ HardenType, đạt được việc đọc và ghi bộ nhớ tương đối tùy ý. Trong việc triển khai cụ thể, mã JavaScript đã được tối ưu hóa sẽ bỏ qua việc kiểm tra kiểu phần tử mảng, tính toán trực tiếp độ lệch để truy cập bộ nhớ. Vấn đề này có một chút khác biệt trên kiến trúc x86 và x64, nhưng đều có thể bị khai thác.
Lỗ hổng này hiện vẫn chưa được sửa chữa trong một số phần mềm sử dụng động cơ V8 như Skype (, vẫn còn rủi ro an ninh tiềm ẩn. Hacker có thể tận dụng khoảng cách vá lỗi này để thực hiện chuỗi khai thác lỗ hổng hoàn chỉnh.
![Tiết lộ độc quyền về việc vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(
Ngoài Uninitialized Oddball, V8 còn có các giá trị Sentinel khác, chúng cũng có thể gây ra các vấn đề bảo mật tương tự. Điều này gợi ý rằng chúng ta cần xem xét lại ảnh hưởng bảo mật của việc lộ giá trị Sentinel và xem xét việc thêm các biến liên quan vào thử nghiệm mờ. Dù các vấn đề này có được coi là lỗ hổng bảo mật chính thức hay không, chúng có thể rút ngắn đáng kể thời gian mà kẻ tấn công cần để đạt được khai thác hoàn chỉnh.
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp(
![Độc quyền tiết lộ cách vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp(
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-230537e420d579aabd89bdd168b20878.webp(
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-506159c94c9e0988552cbcbd13d971e1.webp(
![Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-e9e2000fd501b69ee3ee643a459a26dd.webp(