Уразливість, пов'язана з витоком значення Sentinel двигуна Chrome V8, призводить до ризику втечі з пісочниці.

robot
Генерація анотацій у процесі

Використання значення Sentinel у Chrome V8 та його вплив на безпеку

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

У V8 існує безліч рідних об'єктів, які не повинні бути витеклими в середовище JavaScript. Окрім раніше виявленого об'єкта TheHole, витік об'єкта Uninitialized Oddball також може призвести до проблем з безпекою. Цей метод вперше з'явився в Issue1352549, і в даний час все ще доступний у останній версії V8, Google ще не виправив цю проблему.

Цей метод має високу універсальність:

  1. Перший раз у Issue1216437(CVE-2021-30551) було надано POC для витоку internal uninitialized oddball.

  2. Issue1314616(CVE-2022-1486) також безпосередньо розкриває об'єкт UninitializedOddball.

  3. Issue1352549( без CVE) повністю надано метод використання.

Ці приклади показують, що використання витоку значення Sentinel може вплинути на кілька версій програмного забезпечення.

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

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

Для перевірки цього методу можна модифікувати нативну функцію V8 %TheHole(), щоб розкрити об'єкт Uninitialized Oddball.

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

Використовуючи цей метод, можна обійти захист HardenType V8. Ключовим є те, що оптимізована функція читання JavaScript недостатньо перевіряє властивості об'єкта, що призводить до змішування типів та реалізації довільного читання та запису.

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

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

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

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

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

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

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

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

Крім Uninitialized Oddball, у V8 існують і інші значення Sentinel, які можуть мати подібні ризики. Рекомендується провести подальше дослідження інших проблем безпеки, спричинених витоками значень Sentinel, і розглянути можливість включення відповідних сценаріїв у тестування на надійність.

Незалежно від того, чи вважається це питання офіційно вразливістю безпеки, воно може значно скоротити період часу, протягом якого зловмисники можуть повністю використати уразливість, і заслуговує на велику увагу.

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

SENC-3.81%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Репост
  • Поділіться
Прокоментувати
0/400
LowCapGemHuntervip
· 08-05 12:29
Знову знайдено вразливість, V8, приходь виправляти.
Переглянути оригіналвідповісти на0
DegenWhisperervip
· 08-04 10:02
А що це, чому Google не виправив? Які погані справи.
Переглянути оригіналвідповісти на0
ApyWhisperervip
· 08-04 09:59
Chrome карта до місяця ще хрустка
Переглянути оригіналвідповісти на0
MidsommarWalletvip
· 08-04 09:49
Знову це провина chrome = = Ось така безпека?
Переглянути оригіналвідповісти на0
token_therapistvip
· 08-04 09:46
Немає жодних небезпечних уразливостей, нічого не роблю.
Переглянути оригіналвідповісти на0
  • Закріпити