Глубина анализа рисков безопасности Sentinel Value движка Chrome V8

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

Глубокое изучение влияния Sentinel Value на безопасность в движке Chrome V8

Sentinel value - это специальное значение в алгоритмах, которое часто используется как условие окончания циклов или рекурсий. В исходном коде Chrome существует множество Sentinel value. Ранее проводились исследования, которые показали, что утечка объекта TheHole может привести к выполнению произвольного кода в песочнице Chrome. Команда Google впоследствии исправила связанные уязвимости.

Тем не менее, в V8 также существуют другие нативные объекты, которые не должны быть раскрыты в JavaScript. В этой статье будет обсуждаться объект Uninitialized Oddball, метод обхода которого впервые появился в Issue1352549. Стоит отметить, что этот метод по-прежнему доступен в последней версии V8 и еще не был исправлен.

Этот метод обладает определенной универсальностью:

  1. В Issue1216437(CVE-2021-30551) впервые представлен poc для утечки internal uninitialized oddball.

  2. Issue1314616(CVE-2022-1486) также напрямую раскрыл UninitializedOddball.

  3. Влияние Issue1352549(NoCVE) стоит обратить внимание.

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

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

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

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

Используя этот метод, можно обойти защиту HardenType и реализовать относительно произвольное чтение и запись. Анализ оптимизированного кода JavaScript показывает, что при проверке obj.prop не проверяется значение с ключом obj.prop, а вместо этого смещение рассчитывается и значение массива получается напрямую в соответствии с семантикой JavaScript, что приводит к путанице типов.

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

Поскольку uninitialized_oddball располагается в памяти V8 раньше и более примитивен, чем объект TheHole, его легче подделать. После исправления связанных с TheHole мер, этот метод стал предпочтительным способом обхода.

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

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

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

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

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

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

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

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

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

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

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

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

SENC10.46%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 3
  • Репост
  • Поделиться
комментарий
0/400
GateUser-00be86fcvip
· 08-11 01:16
Эй, v8 снова обнаружил небольшую уязвимость.
Посмотреть ОригиналОтветить0
Blockblindvip
· 08-11 01:15
Этот баг так долго не исправляют, это действительно впечатляет.
Посмотреть ОригиналОтветить0
ImpermanentSagevip
· 08-11 00:55
Ёлки-палки, опять уязвимость выполнения кода.
Посмотреть ОригиналОтветить0
  • Закрепить