Утечка значения 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
· 19ч назад
Еще одна волна дыр... Почему Chrome, который так плохо работает, не исправляют?
Посмотреть ОригиналОтветить0
GasWaster
· 19ч назад
Так много уязвимостей в коробке, клоун, семья
Посмотреть ОригиналОтветить0
GasOptimizer
· 19ч назад
Рекурсивные уязвимости составляют 89,4% вероятности инцидентов безопасности.
Посмотреть ОригиналОтветить0
FallingLeaf
· 19ч назад
Уязвимость такая большая, браузер тоже не безопасен.
Утечка Sentinel Value в движке Chrome V8 приводит к риску выхода из песочницы.
Утечка значения Sentinel и обход HardenProtect в Chrome V8
В исходном коде Chrome присутствует множество значений Sentinel, которые обычно используются в алгоритмах в качестве условий завершения цикла или рекурсии. Недавние исследования показали, что утечка некоторых значений Sentinel может привести к выполнению произвольного кода внутри песочницы Chrome.
Помимо известных объектов TheHole, в V8 существуют и другие нативные объекты, которые не должны быть раскрыты в среде JavaScript. В данной статье основное внимание уделяется объектам Uninitialized Oddball, обходной метод для которых по-прежнему может быть применен в последней версии V8 и еще не был исправлен.
Следует отметить, что этот метод обладает широкой применимостью. В нескольких сообщенных уязвимостях утечка Uninitialized Oddball может привести к удаленному выполнению кода. Это подчеркивает необходимость тщательной проверки программного обеспечения, которое может быть затронуто PatchGap.
Большинство встроенных объектов в V8 определены в файле v8/src/roots/roots.h, они располагаются в памяти друг рядом с другом. Как только эти объекты ошибочно становятся доступными для JavaScript, может быть реализовано выполнение произвольного кода в песочнице.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения
Чтобы проверить этот метод, мы можем изменить встроенные функции V8, чтобы они возвращали объект Uninitialized Oddball. Таким образом, мы сможем реализовать относительно произвольное чтение памяти в последней версии V8.
Суть этого метода обхода заключается в том, что оптимизированная функция JavaScript при доступе к элементам массива не проверяет достаточно информацию о типах массива, а просто вычисляет смещение для получения значения. Это приводит к путанице типов, что позволяет произвольно считывать данные.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
Рекомендуемое решение заключается в том, чтобы при возврате элементов массива из оптимизированной функции добавить проверку массива map, чтобы избежать возврата значений массива с использованием прямого вычисления смещения.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения
Кроме того, нам также необходимо обратить внимание на возможные проблемы PatchGap в программной цепочке поставок. Некоторые широко используемые программы могут все еще не исправить такие уязвимости, что предоставляет злоумышленникам потенциальную лазейку.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
В целом, в V8 существует несколько значений Sentinel, утечка которых может привести к проблемам безопасности. Будущие направления исследований могут включать: изучение влияния утечек других Uninitialized Oddball, оценку целесообразности введения значений Sentinel в качестве переменных для фузз-тестирования, а также более полное рассмотрение связанных проблем безопасности. Независимо от того, были ли такие проблемы официально классифицированы как уязвимости безопасности, они могут значительно сократить время, необходимое злоумышленникам для достижения полной эксплуатации.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения