Обсуждение уязвимостей безопасности значения Sentinel в движке Chrome V8
Sentinel value — это специальное значение в алгоритмах, которое обычно используется в качестве условия завершения в циклах или рекурсивных алгоритмах. В исходном коде Chrome есть много Sentinel value. Недавние исследования показали, что утечка определенных объектов Sentinel value может привести к выполнению произвольного кода внутри песочницы Chrome.
В этой статье будет обсуждаться новый объект Sentinel value: Uninitialized Oddball. Этот способ обхода впервые появился в одном из отчетов о уязвимостях, полностью представленном исследователем безопасности. Следует отметить, что на данный момент этот метод по-прежнему доступен в последней версии V8 и еще не исправлен.
Этот метод обладает высокой универсальностью:
В определенной уязвимости CVE первоначальный PoC состоял в утечке внутреннего неинициализированного странного значения.
В другом отчете о уязвимости CVE исследователи непосредственно раскрыли UninitializedOddball, хотя на тот момент цепочка эксплуатации была неполной, но уже продемонстрировала потенциальные угрозы безопасности.
В недавнем отчете о уязвимости представлен полный способ эксплуатации.
Эти примеры иллюстрируют распространенность и серьезность данной проблемы. На сегодняшний день определенное приложение для обмена сообщениями еще не исправило этот уязвимость.
Применение Sentinel value в V8
В исходном коде V8 определено множество встроенных объектов, которые расположены последовательно в памяти. Как только встроенные объекты, которые не должны быть раскрыты, становятся доступными для JavaScript, это может привести к выполнению произвольного кода в песочнице.
Чтобы проверить эффективность этого метода в последней версии V8, мы можем изменить нативные функции V8, чтобы утечь Uninitialized Oddball в JavaScript.
Обход защиты HardenType
Мы можем построить код, который при возврате UninitializedOddball из некоторой функции осуществляет относительно произвольное чтение. Анализ оптимизированного ассемблерного кода показывает, что функция проверяет только правильность свойств объекта, но не проверяет соответствующие значения свойств, напрямую вычисляя смещение для получения элементов массива по семантике JavaScript, что приводит к путанице типов и обеспечивает произвольное чтение.
Аналогично, произвольная запись также может быть сконструирована подобным образом. Рекомендуется при оптимизации функции, возвращающей элементы массива, добавить проверку на массив map, чтобы избежать прямого вычисления смещения возвращаемого значения.
Напоминание о рисках безопасности
Анализ показывает, что данное программное обеспечение для обмена сообщениями все еще не исправило уязвимость. В системе x86, из-за отсутствия сжатия адресов, произвольное чтение и запись происходят напрямую по отношению ко всему процессу. Хотя ASLR включен, из-за большого размера файлов по-прежнему существует высокая вероятность чтения и записи критического содержимого. С помощью методов анализа PE и других, возможно, можно быстро завершить полный эксплуатационный путь.
Эта проблема безопасности касается не только одной уязвимости, но также значительно облегчила эксплуатацию ранее обнаруженных аналогичных уязвимостей. Хакерам почти не требуется дополнительное исследование для полной эксплуатации, включая все ранее сообщенные аналогичные уязвимости.
В данной статье кратко обсуждаются методы произвольного чтения через утечку Uninitialized Oddball. В V8 также есть много других значений Sentinel, которые могут представлять собой аналогичные проблемы безопасности. Это дает нам некоторые идеи:
Может ли утечка других значений Sentinel также привести к выходу из песочницы V8?
Должны ли такие проблемы рассматриваться как официальные уязвимости безопасности?
Необходимо ли добавлять переменные, связанные с Sentinel value, в тестирование на fuzz, чтобы выявить больше потенциальных проблем?
В любом случае, такого рода проблемы могут значительно сократить период, необходимый хакерам для полного использования уязвимости, и это требует серьезного внимания.
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.
8 Лайков
Награда
8
4
Поделиться
комментарий
0/400
ArbitrageBot
· 07-11 10:52
Как это так, Google смог возникнуть уязвимость?
Посмотреть ОригиналОтветить0
SelfSovereignSteve
· 07-10 20:07
Где находится защита браузера?
Посмотреть ОригиналОтветить0
StablecoinArbitrageur
· 07-10 19:58
хмм, еще одна уязвимость с 99,8% вероятностью исправления до возникновения какой-либо значительной арбитражной возможности...
Посмотреть ОригиналОтветить0
DefiPlaybook
· 07-10 19:45
Браузер тоже провел Аирдроп? Можно ли здесь заработать?
Уязвимость утечки значения Sentinel в V8 движке: Анализ нового метода побега из песочницы Chrome
Обсуждение уязвимостей безопасности значения Sentinel в движке Chrome V8
Sentinel value — это специальное значение в алгоритмах, которое обычно используется в качестве условия завершения в циклах или рекурсивных алгоритмах. В исходном коде Chrome есть много Sentinel value. Недавние исследования показали, что утечка определенных объектов Sentinel value может привести к выполнению произвольного кода внутри песочницы Chrome.
В этой статье будет обсуждаться новый объект Sentinel value: Uninitialized Oddball. Этот способ обхода впервые появился в одном из отчетов о уязвимостях, полностью представленном исследователем безопасности. Следует отметить, что на данный момент этот метод по-прежнему доступен в последней версии V8 и еще не исправлен.
Этот метод обладает высокой универсальностью:
В определенной уязвимости CVE первоначальный PoC состоял в утечке внутреннего неинициализированного странного значения.
В другом отчете о уязвимости CVE исследователи непосредственно раскрыли UninitializedOddball, хотя на тот момент цепочка эксплуатации была неполной, но уже продемонстрировала потенциальные угрозы безопасности.
В недавнем отчете о уязвимости представлен полный способ эксплуатации.
Эти примеры иллюстрируют распространенность и серьезность данной проблемы. На сегодняшний день определенное приложение для обмена сообщениями еще не исправило этот уязвимость.
Применение Sentinel value в V8
В исходном коде V8 определено множество встроенных объектов, которые расположены последовательно в памяти. Как только встроенные объекты, которые не должны быть раскрыты, становятся доступными для JavaScript, это может привести к выполнению произвольного кода в песочнице.
Чтобы проверить эффективность этого метода в последней версии V8, мы можем изменить нативные функции V8, чтобы утечь Uninitialized Oddball в JavaScript.
Обход защиты HardenType
Мы можем построить код, который при возврате UninitializedOddball из некоторой функции осуществляет относительно произвольное чтение. Анализ оптимизированного ассемблерного кода показывает, что функция проверяет только правильность свойств объекта, но не проверяет соответствующие значения свойств, напрямую вычисляя смещение для получения элементов массива по семантике JavaScript, что приводит к путанице типов и обеспечивает произвольное чтение.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
Аналогично, произвольная запись также может быть сконструирована подобным образом. Рекомендуется при оптимизации функции, возвращающей элементы массива, добавить проверку на массив map, чтобы избежать прямого вычисления смещения возвращаемого значения.
Напоминание о рисках безопасности
Анализ показывает, что данное программное обеспечение для обмена сообщениями все еще не исправило уязвимость. В системе x86, из-за отсутствия сжатия адресов, произвольное чтение и запись происходят напрямую по отношению ко всему процессу. Хотя ASLR включен, из-за большого размера файлов по-прежнему существует высокая вероятность чтения и записи критического содержимого. С помощью методов анализа PE и других, возможно, можно быстро завершить полный эксплуатационный путь.
Эта проблема безопасности касается не только одной уязвимости, но также значительно облегчила эксплуатацию ранее обнаруженных аналогичных уязвимостей. Хакерам почти не требуется дополнительное исследование для полной эксплуатации, включая все ранее сообщенные аналогичные уязвимости.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
Итог
В данной статье кратко обсуждаются методы произвольного чтения через утечку Uninitialized Oddball. В V8 также есть много других значений Sentinel, которые могут представлять собой аналогичные проблемы безопасности. Это дает нам некоторые идеи:
Может ли утечка других значений Sentinel также привести к выходу из песочницы V8?
Должны ли такие проблемы рассматриваться как официальные уязвимости безопасности?
Необходимо ли добавлять переменные, связанные с Sentinel value, в тестирование на fuzz, чтобы выявить больше потенциальных проблем?
В любом случае, такого рода проблемы могут значительно сократить период, необходимый хакерам для полного использования уязвимости, и это требует серьезного внимания.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения