Уязвимость утечки Sentinel Value в V8-движке, позволяющая обойти безопасность HardenProtect

Безопасные риски, вызванные утечкой Sentinel Value в движке Chrome V8

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

Значение Sentinel в V8

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

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

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

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

Используя утечку объекта Uninitialized Oddball, можно создать следующий код для реализации относительно произвольного чтения:

JavaScript функция read(obj, idx) { вернуть obj[idx]; }

пусть arr = [1.1, 2.2, 3.3]; пусть uninitialized_oddball = %TheHole();

для (let i = 0; i < 100000; i++) { read(arr, 0);
}

%ОптимизироватьФункциюНаСледующемВызове(читать);

пусть result = read(uninitialized_oddball, 0x12345); %DebugPrint(результат);

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

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

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

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

Уведомление о рисках PatchGap

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

Публикация этого нового метода обхода снизила сложность эксплуатации связанных уязвимостей. Хакеры почти не нуждаются в дополнительном исследовании, чтобы полностью использовать утечку уязвимости Uninitialized Oddball.

! [Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(

Итог

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

  1. Могут ли другие Uninitialized Oddball утечки также реализовать RCE V8
  2. Следует ли официально считать такие вопросы уязвимостями безопасности
  3. Нужно ли добавлять значение Sentinel в качестве переменной в тестировании Fuzzer

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

![Эксклюзивное разоблачение обхода защиты Chrome v8 HardenProtect через утечку Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp(

![Эксклюзивное разоблачение обхода защиты HardenProtect в Chrome v8 через утечку Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp(

![Эксклюзивное разоблачение обхода Chrome v8 HardenProtect через утечку Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-230537e420d579aabd89bdd168b20878.webp(

! [Эксклюзивное раскрытие обхода Chrome v8 HardenProtect путем утечки значения Sentinel])https://img-cdn.gateio.im/social/moments-506159c94c9e0988552cbd13d971e1(

![Эксклюзивное разоблачение обхода защиты Chrome v8 HardenProtect через утечку Sentinel Value])https://img-cdn.gateio.im/webp-social/moments-e9e2000fd501b69ee3ee643a459a26dd.webp(

SENC-0.03%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Поделиться
комментарий
0/400
GateUser-bd883c58vip
· 08-04 04:05
Этот уязвимость настолько жесткая, что немного пугает.
Посмотреть ОригиналОтветить0
SerumDegenvip
· 08-02 17:19
gm френ... еще одна утечка альфа обнаружена в v8, мы все ректы
Посмотреть ОригиналОтветить0
ThatsNotARugPullvip
· 08-02 17:19
Эта кастрюля Chrome пусть будет с тобой, тебе уже показали, где вырыли отверстие.
Посмотреть ОригиналОтветить0
RektButStillHerevip
· 08-02 17:09
Почему защита песочницы такая слабая?
Посмотреть ОригиналОтветить0
CryptoNomicsvip
· 08-02 17:01
*вздох* еще одна уязвимость, подтверждающая, что мой регрессионный анализ модели безопасности Chrome был статистически значимым... но никто не слушал
Посмотреть ОригиналОтветить0
MetaverseHobovip
· 08-02 16:58
Этот баг просто ужасен, прямо На луну.
Посмотреть ОригиналОтветить0
  • Закрепить