Утечка значения Sentinel в движке Chrome V8 приводит к риску побега из песочницы.

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

Применение значения Sentinel в Chrome V8 и его влияние на безопасность

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

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

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

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

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

  3. Issue1352549( полное описание методов эксплуатации дано без CVE).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SENC-1.56%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 5
  • Репост
  • Поделиться
комментарий
0/400
LowCapGemHuntervip
· 08-05 12:29
Снова нашли уязвимость, v8, скорей приходи починить.
Посмотреть ОригиналОтветить0
DegenWhisperervip
· 08-04 10:02
А это почему Google не исправил? Какая плохая еда!
Посмотреть ОригиналОтветить0
ApyWhisperervip
· 08-04 09:59
Chrome卡到 На луну 还脆皮
Посмотреть ОригиналОтветить0
MidsommarWalletvip
· 08-04 09:49
Снова вина Chrome = = Вот такая безопасность?
Посмотреть ОригиналОтветить0
token_therapistvip
· 08-04 09:46
Нет никаких уязвимостей с поражающей силой, просто нечем заняться.
Посмотреть ОригиналОтветить0
  • Закрепить