Sự rò rỉ giá trị Sentinel của động cơ Chrome V8 dẫn đến rủi ro thoát khỏi hộp cát.

robot
Đang tạo bản tóm tắt

Ứng dụng của giá trị Sentinel trong Chrome V8 và ảnh hưởng của nó đến an ninh

Giá trị Sentinel là một giá trị đặc biệt trong thuật toán, thường được sử dụng làm điều kiện dừng cho vòng lặp hoặc đệ quy. Trong mã nguồn của engine Chrome V8, giá trị Sentinel được sử dụng rộng rãi. Gần đây, các nhà nghiên cứu an ninh đã phát hiện ra rằng việc rò rỉ các đối tượng Sentinel value nhất định có thể dẫn đến việc thực thi mã tùy ý trong sandbox của Chrome.

Trong V8 có nhiều đối tượng nguyên thủy không nên bị rò rỉ vào môi trường JavaScript. Ngoài đối tượng TheHole đã được công khai trước đó, việc rò rỉ đối tượng Uninitialized Oddball cũng có thể dẫn đến vấn đề an ninh. Phương pháp này lần đầu tiên xuất hiện trong Issue1352549, và hiện vẫn có thể được sử dụng trong phiên bản mới nhất của V8, Google vẫn chưa sửa chữa.

Phương pháp này có tính phổ quát mạnh mẽ:

  1. Issue1216437(CVE-2021-30551) đã lần đầu tiên đưa ra POC cho việc rò rỉ internal uninitialized oddball.

  2. Issue1314616(CVE-2022-1486) cũng đã trực tiếp rò rỉ đối tượng UninitializedOddball.

  3. Issue1352549( không CVE) đã cung cấp đầy đủ phương pháp khai thác.

Những trường hợp này cho thấy, việc sử dụng lỗ hổng giá trị Sentinel có thể ảnh hưởng đến nhiều phiên bản phần mềm.

Hầu hết các đối tượng gốc của V8 được định nghĩa trong tệp v8/src/roots/roots.h, được sắp xếp liền kề trong bộ nhớ. Một khi những đối tượng này bị rò rỉ vào môi trường JavaScript, có thể thực hiện việc thoát khỏi sandbox.

Tiết lộ độc quyền cách vượt qua HardenProtect của Chrome thông qua việc lộ giá trị Sentinel

Để xác thực phương pháp này, có thể thông qua việc sửa đổi hàm native V8 %TheHole() để lộ đối tượng Uninitialized Oddball.

Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value

Phương pháp này có thể vượt qua bảo vệ HardenType của V8. Chìa khóa nằm ở việc hàm read JavaScript đã được tối ưu hóa không kiểm tra đầy đủ thuộc tính của đối tượng, dẫn đến việc nhầm lẫn kiểu thực hiện đọc và ghi tùy ý.

Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect bằng cách rò rỉ Sentinel Value

Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value

Độc quyền tiết lộ cách vượt qua Chrome v8 HardenProtect thông qua việc tiết lộ Sentinel Value

Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value

Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value

Đề xuất giải pháp sửa chữa là khi hàm đã được tối ưu hóa trả về các phần tử của mảng, thêm kiểm tra đối với mảng map, tránh việc tính toán trực tiếp để trả về giá trị lệch.

Tiết lộ độc quyền cách vượt qua Chrome v8 HardenProtect thông qua việc rò rỉ Sentinel Value

Cần lưu ý rằng các phần mềm như Skype có thể vẫn tồn tại loại lỗ hổng này. Trên nền tảng x86, do thiếu nén địa chỉ, phạm vi đọc và ghi tùy ý lớn hơn. Kẻ tấn công có thể tận dụng lỗ hổng này để thực hiện chuỗi khai thác hoàn chỉnh.

Ngoài Uninitialized Oddball, còn có nhiều giá trị Sentinel khác trong V8 có thể tồn tại rủi ro tương tự. Đề nghị nghiên cứu thêm về các vấn đề bảo mật do rò rỉ giá trị Sentinel khác và xem xét thêm các tình huống liên quan vào kiểm thử mờ.

Dù vấn đề này có được chính thức liệt kê là lỗ hổng bảo mật hay không, nó có thể rút ngắn đáng kể thời gian mà kẻ tấn công có thể khai thác triệt để, điều này đáng được chú ý cao.

Tiết lộ độc quyền cách vượt qua HardenProtect của Chrome v8 thông qua việc rò rỉ Sentinel Value

SENC-2.37%
Xem bản gốc
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.
  • Phần thưởng
  • 5
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
LowCapGemHuntervip
· 08-05 12:29
Lại phát hiện lỗ hổng rồi, v8 mau đến sửa đi.
Xem bản gốcTrả lời0
DegenWhisperervip
· 08-04 10:02
À này, Google sao không sửa, đồ ăn ngon quá.
Xem bản gốcTrả lời0
ApyWhisperervip
· 08-04 09:59
Chrome bị kẹt To da moon còn giòn
Xem bản gốcTrả lời0
MidsommarWalletvip
· 08-04 09:49
Lại là lỗi của chrome = = Chỉ có mức độ an toàn này?
Xem bản gốcTrả lời0
token_therapistvip
· 08-04 09:46
Không có lỗ hổng nào gây hại, chỉ là không có việc gì làm.
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)