0-day уязвимость в Chrome, выявленная через анализ изменений в движке V8

26 февраля 2020 года

Исследователи из компании Exodus Intelligence продемонстрировали слабое место в процессе исправлений уязвимостей в кодовой базе Chrome/Chromium. Проблема связана с тем, что Google раскрывает сведения, что внесённые исправления имеют отношение к проблемам с безопасностью только после релиза, но добавляет в репозиторий код для устранения уязвимости в движке V8 до публикации релиза. Какое-то время исправления проходят тестирование и возникает окно, в течение которого уязвимость становится исправленной в кодовой базе и доступной для анализа, но уязвимость остаётся неисправленной на системах пользователей.

Изучая вносимые в репозиторий изменения исследователи обратили внимание на добавленное 19 февраля исправление и в течение трёх дней смогли подготовить эксплоит, поражающий актуальные выпуски Chrome (опубликованный эксплоит не включал компоненты для обхода sandbox-изоляции). Компания Google оперативно выпустила обновление Chrome 80.0.3987.122, устранив связанную с предложенным эксплоитом уязвимость (CVE-2020-6418). Уязвимость была изначально выявлена инженерами Google и вызвана проблемой с обработкой типов в операции JSCreate, которая может быть эксплуатирована через метод Array.pop или Array.prototype.pop. Примечательно, что похожая проблема была исправлена в Firefox летом прошлого года.

Исследователи также обратили внимание на упрощение создания эксплоитов из-за включения в Chrome 80 механизма упаковки указателей (вместо полного 64-разрядного значения хранятся только уникальные нижние биты указателя, что позволяет значительно сократить потребление памяти в куче). Например, некоторые находящиеся в начале кучи структуры данных, такие как таблица встроенных функций, объекты "native context" и корневые объекты сборщика мусора, теперь размещаются по предсказуемым и доступным на запись упакованным адресам.

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

Источники править

 
 
Creative Commons
Эта статья содержит материалы из статьи «0-day уязвимость в Chrome, выявленная через анализ изменений в движке V8», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.