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

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

Исследование угроз безопасности, вызванных утечкой Sentinel Value в движке Chrome V8

Sentinel value – это значение, используемое в алгоритмах в качестве специальной метки, обычно в циклах или рекурсиях в качестве условия завершения. В исходном коде движка Chrome V8 существует несколько Sentinel value, некоторые из которых не должны утекать в среду JavaScript. В данной статье будет обсужден способ обхода механизма HardenProtect в Chrome V8 через утечку объектов Uninitialized Oddball.

Сентинельное значение в V8

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

Мы можем проверить это, изменив нативные функции V8. Например, изменив смещение функции %TheHole(), чтобы она возвращала объект Uninitialized Oddball вместо объекта TheHole.

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

Обход защиты HardenType

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

Анализ оптимизированного ассемблерного кода показывает, что при передаче uninitialized_oddball программа сразу вычисляет смещение и считывает данные, не проводя проверку типа. Этот метод проще в конструировании и использовании по сравнению с объектом TheHole.

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

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

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

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

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

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

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

Предупреждение о безопасности PatchGap

Помимо внимания к известным историческим уязвимостям, нам также следует обращать внимание на проблемы, которые производители тихо исправляют в основных компонентах. После анализа было установлено, что программа Skype до сих пор не исправила эту уязвимость. На платформе x86, из-за отсутствия сжатия адресов, диапазон произвольного чтения и записи значительно больше, почти можно читать и записывать в всё пространство процесса.

Этот раз PatchGap затрагивает не только Issue1352549, но и подобные уязвимости, такие как Issue1314616 и Issue1216437. После публикации нового метода обхода сложность эксплуатации этих уязвимостей существенно снизилась, и злоумышленникам практически не нужно дополнительных исследований для завершения полной цепочки эксплуатации.

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

Итог

В данной статье кратко рассматривается метод произвольного чтения через утечку Uninitialized Oddball. В V8 также существуют другие несколько Sentinel значений, которые могут привести к аналогичным проблемам. Это подсказывает нам:

  1. Другие утечки uninitialized_Oddball также могут привести к выходу из песочницы V8.

  2. Существует спор о том, следует ли рассматривать такие вопросы как официальные уязвимости безопасности.

  3. Рассмотрите возможность добавления значения Sentinel в качестве переменной в模糊测试, чтобы обнаружить новые методы эксплуатации.

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

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

SENC-0.03%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 5
  • Поделиться
комментарий
0/400
PaperHandsCriminalvip
· 7ч назад
Хрустящая корочка V8 механизм, я снова взорвал!
Посмотреть ОригиналОтветить0
MoonBoi42vip
· 23ч назад
Немного нервничаю, слишком много уязвимостей.
Посмотреть ОригиналОтветить0
SleepyArbCatvip
· 08-02 05:40
Котик, который устал настолько, что может только писать код...zZz
Посмотреть ОригиналОтветить0
ChainDetectivevip
· 08-02 05:38
Офигеть, уязвимость в движке v8, теперь точно.
Посмотреть ОригиналОтветить0
LadderToolGuyvip
· 08-02 05:36
Удивлён, снова взломали и играют.
Посмотреть ОригиналОтветить0
  • Закрепить