Анализ и защита уязвимости утечки Sentinel Value в движке Chrome V8

robot
Генерация тезисов в процессе

Технический анализ обхода Sentinel Value защиты Chrome V8 HardenProtect

Sentinel value является специальным значением в алгоритмах, которое обычно используется в качестве условия завершения в циклах или рекурсивных алгоритмах. В исходном коде Chrome есть множество Sentinel value. Недавние исследования показали, что утечка объекта TheHole может привести к выполнению произвольного кода в песочнице для CVE-2021-38003 и CVE-2022-1364. Команда Google затем обновила эти два уязвимых места.

Помимо объекта TheHole, в V8 есть и другие встроенные объекты, которые не должны быть раскрыты в JavaScript. В этой статье обсуждается объект Uninitialized Oddball, метод обхода которого до сих пор доступен в последней версии V8.

Большинство встроенных объектов V8 определены в файле v8/src/roots/roots.h, эти объекты расположены в памяти смежно. Как только встроенные объекты, которые не должны быть раскрыты, становятся доступными в JavaScript, это может привести к выполнению произвольного кода в песочнице.

Эксклюзивное разоблачение обхода защиты HardenProtect Chrome v8 через утечку Sentinel Value

Для проверки этого метода можно изменить нативные функции V8, чтобы утечь Uninitialized Oddball в JavaScript. В частности, можно изменить смещение относительно isolate в функции %TheHole(), чтобы она возвращала Uninitialized Oddball.

! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения

Использование Uninitialized Oddball позволяет осуществлять произвольное чтение и запись. Оптимизированная функция чтения JavaScript будет непосредственно вычислять смещение в соответствии с семантикой JavaScript, извлекая значения из массива, что приводит к смешению типов и позволяет произвольное чтение.

Эксклюзивное разоблачение обхода защиты HardenProtect Chrome v8 через утечку Sentinel Value

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

! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения

Рекомендуемое решение заключается в том, чтобы при возврате элементов массива оптимизированной функции добавить проверку массива map, чтобы избежать прямого вычисления смещения при возврате значений массива.

Стоит отметить, что этот метод применим не только для Chrome, но и для другого программного обеспечения, использующего движок V8. Например, Skype до сих пор не исправил эту уязвимость. В x86, из-за отсутствия сжатия адресов, произвольное чтение и запись происходит непосредственно относительно всего процесса.

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

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

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

! Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки сигнального значения

В целом, утечка uninitialized_Oddball из Sentinel value может привести к произвольному чтению примитивов. В V8 есть и другие Sentinel value, которые могут вызвать аналогичные проблемы. Рекомендуется добавить эти Sentinel value в переменные фуззера, чтобы выявить больше потенциальных уязвимостей. Независимо от того, рассматриваются ли эти проблемы официально как проблемы безопасности, они значительно сокращают время, необходимое хакерам для достижения полной эксплуатации.

SENC1.2%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 5
  • Поделиться
комментарий
0/400
FUD_Vaccinatedvip
· 1ч назад
Ах, у этого браузера тоже есть бэкдор.
Посмотреть ОригиналОтветить0
TommyTeachervip
· 07-20 16:35
Действительно, это немного опасно.
Посмотреть ОригиналОтветить0
BrokeBeansvip
· 07-20 16:22
Весь день думаешь о копании и сверлении, разве не приятнее решать задачи с ручкой?
Посмотреть ОригиналОтветить0
GateUser-ccc36bc5vip
· 07-20 16:13
v8 защита такая плохая?
Посмотреть ОригиналОтветить0
StablecoinGuardianvip
· 07-20 16:09
О, V8 снова возникли проблемы с безопасностью.
Посмотреть ОригиналОтветить0
  • Закрепить