Изучение уязвимостей безопасности значений Sentinel в движке Chrome V8
Значение Sentinel — это специальное значение в алгоритме, которое обычно используется в качестве условия завершения в циклах или рекурсивных алгоритмах. В исходном коде Chrome существует множество значений Sentinel, некоторые из которых могут привести к уязвимостям безопасности. В этой статье будет обсуждаться, как обойти механизм защиты HardenProtect движка Chrome V8 через утечку неинициализированного объекта Oddball.
Сентинельное значение в V8
В движке V8 определено несколько встроенных объектов, которые расположены в памяти последовательно. Если встроенные объекты, которые не должны быть доступны для JavaScript, будут утечены, это может привести к выполнению произвольного кода в песочнице.
Обход защиты HardenType
Изменяя нативные функции V8, можно утечь объект Uninitialized Oddball в JavaScript. Используя этот утеченный объект, можно осуществлять относительно произвольные операции чтения и записи, тем самым обходя защиту HardenType.
Конкретный метод реализации:
Измените функцию %TheHole() так, чтобы она возвращала объект Uninitialized Oddball.
Создайте специальный код JavaScript, используя оптимизированные функции, в которых отсутствует проверка массива map, и прямо вычисляйте смещение для возврата значений массива.
Реализация произвольного чтения и записи через смешивание типов
Этот способ обхода подходит не только для последней версии V8, но также может повлиять на программное обеспечение, использующее старую версию V8. Например, Skype до сих пор не исправил этот уязвимость. В архитектуре x86, из-за отсутствия сжатия адресов, диапазон произвольного чтения и записи может быть больше.
Кроме того, этот новый метод обхода может также снизить сложность эксплуатации других связанных уязвимостей, таких как Issue1314616 и Issue1216437.
В V8 также существуют другие значения Sentinel, которые могут представлять собой аналогичные угрозы безопасности. Будущие направления исследований могут включать:
Исследовать, могут ли другие утечки Uninitialized Oddball также привести к RCE V8.
Рассмотрите возможность добавления значения Sentinel в качестве переменной в тестирование с нечетким поиском, чтобы обнаружить больше потенциальных уязвимостей.
Обратите внимание на то, будут ли такие вопросы официально рассматриваться как проблемы безопасности и оцените их влияние на сокращение полного цикла эксплуатации хакерами.
Независимо от того, классифицируются ли такие проблемы как официальные проблемы безопасности, они могут значительно сократить время, необходимое хакерам для полного использования уязвимости. Поэтому крайне важно постоянно следить за и исследовать проблемы безопасности, связанные с Sentinel value.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
17 Лайков
Награда
17
6
Поделиться
комментарий
0/400
AirdropSweaterFan
· 07-08 03:03
Снова дыра в v8? В прошлом месяце только что исправили кучу.
Посмотреть ОригиналОтветить0
HashBard
· 07-05 03:39
омг, сенители v8 как поэзия... сломанные раскрывают все секреты fr fr
Посмотреть ОригиналОтветить0
RetiredMiner
· 07-05 03:38
Этот баг я могу написать exp даже с закрытыми глазами
Посмотреть ОригиналОтветить0
GhostInTheChain
· 07-05 03:31
v8 двигатель снова поразил всех
Посмотреть ОригиналОтветить0
DeFiChef
· 07-05 03:30
Интересно, нужно больше следовать за этой уязвимостью
Анализ и использование уязвимости безопасности Sentinel Value в движке Chrome V8
Изучение уязвимостей безопасности значений Sentinel в движке Chrome V8
Значение Sentinel — это специальное значение в алгоритме, которое обычно используется в качестве условия завершения в циклах или рекурсивных алгоритмах. В исходном коде Chrome существует множество значений Sentinel, некоторые из которых могут привести к уязвимостям безопасности. В этой статье будет обсуждаться, как обойти механизм защиты HardenProtect движка Chrome V8 через утечку неинициализированного объекта Oddball.
Сентинельное значение в V8
В движке V8 определено несколько встроенных объектов, которые расположены в памяти последовательно. Если встроенные объекты, которые не должны быть доступны для JavaScript, будут утечены, это может привести к выполнению произвольного кода в песочнице.
Обход защиты HardenType
Изменяя нативные функции V8, можно утечь объект Uninitialized Oddball в JavaScript. Используя этот утеченный объект, можно осуществлять относительно произвольные операции чтения и записи, тем самым обходя защиту HardenType.
Конкретный метод реализации:
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
Предупреждение о рисках PatchGap
Этот способ обхода подходит не только для последней версии V8, но также может повлиять на программное обеспечение, использующее старую версию V8. Например, Skype до сих пор не исправил этот уязвимость. В архитектуре x86, из-за отсутствия сжатия адресов, диапазон произвольного чтения и записи может быть больше.
Кроме того, этот новый метод обхода может также снизить сложность эксплуатации других связанных уязвимостей, таких как Issue1314616 и Issue1216437.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel
Итоги и размышления
В V8 также существуют другие значения Sentinel, которые могут представлять собой аналогичные угрозы безопасности. Будущие направления исследований могут включать:
Независимо от того, классифицируются ли такие проблемы как официальные проблемы безопасности, они могут значительно сократить время, необходимое хакерам для полного использования уязвимости. Поэтому крайне важно постоянно следить за и исследовать проблемы безопасности, связанные с Sentinel value.
! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения