Вразливість безпеки обходу HardenProtect через витік значення Sentinel V8

Безпекові ризики, спричинені витоком значення Sentinel у движку Chrome V8

Sentinel value є спеціальним значенням в алгоритмах, яке часто використовується як умова завершення циклів або рекурсивних алгоритмів. У вихідному коді Chrome існує кілька Sentinel value, деякі з яких не повинні бути витекли в середовище JavaScript. У цій статті буде досліджено, як використовувати витік Uninitialized Oddball об'єкта для обходу механізму HardenProtect двигуна Chrome V8.

Значення Sentinel у V8

Більшість вбудованих об'єктів V8 визначені в файлі v8/src/roots/roots.h, ці об'єкти розташовані в пам'яті поруч один з одним. Як тільки ці вбудовані об'єкти, які не повинні бути доступні JavaScript, будуть скомпрометовані, це може призвести до виконання довільного коду в пісочниці.

Ми можемо вивести Uninitialized Oddball у JavaScript, змінивши рідні функції V8. Наприклад, змінивши зміщення функції %TheHole(), щоб вона повертала об'єкт Uninitialized Oddball.

Ексклюзивне викриття обходу захисту HardenProtect Chrome v8 через витік Sentinel Value

Обхід захисту HardenType

Використовуючи витоку об'єкта Uninitialized Oddball, можна створити наступний код для реалізації відносно довільного читання:

Javascript функція read(obj, idx) { повернути obj[idx]; }

нехай arr = [1.1, 2.2, 3.3]; нехай uninitialized_oddball = %TheHole();

для (let i = 0; І < 100000; І++) { read(arr, 0);
}

%ОптимізуватиФункціюНаНаступномуВиклику(читати);

Нехай результат = read(uninitialized_oddball, 0x12345); %DebugPrint(result);

Оптимізований асемблерний код функції read показує, що під час обчислення зсуву масиву не перевіряється тип значення obj.prop, а безпосередньо обчислюється за семантикою JavaScript, що призводить до змішування типів і реалізації довільного читання.

! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel

Рекомендація щодо виправлення полягає в тому, щоб під час повернення елементів масиву з оптимізованої функції додати перевірку масиву map, щоб уникнути прямого обчислення зсуву для повернення значення.

! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel

PatchGap ризики

Ця вразливість наразі не виправлена в деякому програмному забезпеченні, яке використовує застарілу версію V8, такому як Skype(. На платформі x86, через відсутність стиснення адрес, будь-яке читання і запис можуть бути виконані безпосередньо щодо всього процесу.

Публікація цього нового методу обходу знизила складність використання відповідних уразливостей. Хакери майже не потребують додаткових досліджень, щоб здійснити повне використання витоку вразливості Uninitialized Oddball.

! [Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(

Підсумок

У V8 також є інші значення Sentinel, які можуть призвести до подібних проблем з безпекою. Рекомендується провести подальше дослідження:

  1. Чи можуть інші Uninitialized Oddball витоки також реалізувати RCE V8
  2. Чи слід офіційно визнати такі питання як вразливості безпеки
  3. Чи потрібно включати значення Sentinel як змінну в тестуванні Fuzzer

У будь-якому випадку, такого роду проблеми значно скоротять термін повного використання хакерами, що заслуговує на високу увагу.

![Ексклюзивне розкриття обходу захисту HardenProtect Chrome через витік Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp(

! [Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp(

! [Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel])https://img-cdn.gateio.im/webp-social/moments-230537e420d579aabd89bdd168b20878.webp(

! [Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel])https://img-cdn.gateio.im/webp-social/moments-506159c94c9e0988552cbcbd13d971e1.webp(

! [Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel])https://img-cdn.gateio.im/webp-social/moments-e9e2000fd501b69ee3ee643a459a26dd.webp(

SENC-0.36%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 6
  • Поділіться
Прокоментувати
0/400
GateUser-bd883c58vip
· 08-04 04:05
Ця уразливість така жорстка, що трішки лякає.
Переглянути оригіналвідповісти на0
SerumDegenvip
· 08-02 17:19
gm друг... ще одне витік альфи помічено у v8, ми всі rekt
Переглянути оригіналвідповісти на0
ThatsNotARugPullvip
· 08-02 17:19
Цю каструлю Chrome носіть, адже люди вже показали вам дірку.
Переглянути оригіналвідповісти на0
RektButStillHerevip
· 08-02 17:09
Чому захист пісочниці такий поганий?
Переглянути оригіналвідповісти на0
CryptoNomicsvip
· 08-02 17:01
*с sigh* ще одна експлуатація, що доводить, що мій регресійний аналіз моделі безпеки chrome був статистично значущим... і все ж ніхто не слухав
Переглянути оригіналвідповісти на0
MetaverseHobovip
· 08-02 16:58
Ця вразливість просто вражає, прямий до місяця.
Переглянути оригіналвідповісти на0
  • Закріпити