Витік значення Sentinel та обходження захисту HardenProtect Chrome V8
У вихідному коді Chrome є велика кількість значень Sentinel, які зазвичай використовуються в алгоритмах як умови завершення циклів або рекурсії. Недавні дослідження показали, що витік деяких значень Sentinel може призвести до виконання довільного коду в пісочниці Chrome.
Окрім відомого об'єкта TheHole, у V8 є й інші рідні об'єкти, які не повинні бути розкриті в середовищі JavaScript. У цій статті основна увага приділяється об'єкту Uninitialized Oddball, спосіб обходу якого досі можна застосовувати в останній версії V8, і він ще не був виправлений.
Варто зазначити, що цей метод має широкий спектр застосування. У кількох повідомлених вразливостях витік Uninitialized Oddball може призвести до віддаленого виконання коду. Це підкреслює необхідність всебічного аудиту програмного забезпечення, яке може бути під впливом PatchGap.
Більшість вбудованих об'єктів у V8 визначені у файлі v8/src/roots/roots.h, вони розташовані в пам'яті поруч один з одним. Як тільки ці об'єкти ненавмисно відкриваються для JavaScript, це може призвести до виконання довільного коду в пісочниці.
Щоб перевірити цей метод, ми можемо змінити вбудовану функцію V8, щоб вона повертала об'єкт Uninitialized Oddball. Таким чином, ми зможемо реалізувати відносно довільне читання пам'яті в останній версії V8.
Суть цього методу обходу полягає в тому, що оптимізована функція JavaScript при доступі до елементів масиву недостатньо перевіряє інформацію про тип масиву, а безпосередньо обчислює зсув для отримання значення. Це призводить до плутанини типів, що дозволяє виконувати довільне зчитування.
Рекомендоване рішення полягає в тому, щоб під час повернення елементів масиву оптимізованою функцією додати перевірку масиву map, щоб уникнути прямого обчислення значення масиву за допомогою зсуву.
Крім того, нам слід звернути увагу на можливі проблеми PatchGap у програмній постачальницькій ланцюжку. Деяке широко використовуване програмне забезпечення може ще не виправити такі вразливості, що надає зловмисникам можливий вихід.
В загальному, у V8 існує кілька значень Sentinel, витік яких може призвести до проблем безпеки. Майбутні напрямки досліджень можуть включати: вивчення впливу витоків інших Uninitialized Oddball, оцінку доцільності введення значення Sentinel як змінної для фузз-тестування, а також більш всебічний аналіз відповідних проблем безпеки. Незалежно від того, чи будуть ці проблеми офіційно визнані як вразливості безпеки, вони можуть значно скоротити час, необхідний зловмисникам для досягнення повної експлуатації.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
9 лайків
Нагородити
9
5
Репост
Поділіться
Прокоментувати
0/400
LiquidatedDreams
· 9год тому
Ще одна хвиля дірок... Чому ж Chrome, який просто валяється, не виправляють?
Переглянути оригіналвідповісти на0
GasWaster
· 9год тому
Коробка має так багато дірок, клоун сім'я.
Переглянути оригіналвідповісти на0
GasOptimizer
· 9год тому
Вразливості рекурсії становлять 89,4% ймовірності випадків порушення безпеки.
Витік значення Sentinel у двигуні Chrome V8 призводить до ризику втечі з пісочниці
Витік значення Sentinel та обходження захисту HardenProtect Chrome V8
У вихідному коді Chrome є велика кількість значень Sentinel, які зазвичай використовуються в алгоритмах як умови завершення циклів або рекурсії. Недавні дослідження показали, що витік деяких значень Sentinel може призвести до виконання довільного коду в пісочниці Chrome.
Окрім відомого об'єкта TheHole, у V8 є й інші рідні об'єкти, які не повинні бути розкриті в середовищі JavaScript. У цій статті основна увага приділяється об'єкту Uninitialized Oddball, спосіб обходу якого досі можна застосовувати в останній версії V8, і він ще не був виправлений.
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
Варто зазначити, що цей метод має широкий спектр застосування. У кількох повідомлених вразливостях витік Uninitialized Oddball може призвести до віддаленого виконання коду. Це підкреслює необхідність всебічного аудиту програмного забезпечення, яке може бути під впливом PatchGap.
Більшість вбудованих об'єктів у V8 визначені у файлі v8/src/roots/roots.h, вони розташовані в пам'яті поруч один з одним. Як тільки ці об'єкти ненавмисно відкриваються для JavaScript, це може призвести до виконання довільного коду в пісочниці.
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
Щоб перевірити цей метод, ми можемо змінити вбудовану функцію V8, щоб вона повертала об'єкт Uninitialized Oddball. Таким чином, ми зможемо реалізувати відносно довільне читання пам'яті в останній версії V8.
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
Суть цього методу обходу полягає в тому, що оптимізована функція JavaScript при доступі до елементів масиву недостатньо перевіряє інформацію про тип масиву, а безпосередньо обчислює зсув для отримання значення. Це призводить до плутанини типів, що дозволяє виконувати довільне зчитування.
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
Рекомендоване рішення полягає в тому, щоб під час повернення елементів масиву оптимізованою функцією додати перевірку масиву map, щоб уникнути прямого обчислення значення масиву за допомогою зсуву.
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
Крім того, нам слід звернути увагу на можливі проблеми PatchGap у програмній постачальницькій ланцюжку. Деяке широко використовуване програмне забезпечення може ще не виправити такі вразливості, що надає зловмисникам можливий вихід.
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
В загальному, у V8 існує кілька значень Sentinel, витік яких може призвести до проблем безпеки. Майбутні напрямки досліджень можуть включати: вивчення впливу витоків інших Uninitialized Oddball, оцінку доцільності введення значення Sentinel як змінної для фузз-тестування, а також більш всебічний аналіз відповідних проблем безпеки. Незалежно від того, чи будуть ці проблеми офіційно визнані як вразливості безпеки, вони можуть значно скоротити час, необхідний зловмисникам для досягнення повної експлуатації.
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel
! Ексклюзивне розкриття обходу Chrome v8 HardenProtect шляхом витоку значення Sentinel