26.09.2020

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


Исследователи из компании 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.

Источник: https://www.opennet.ru/opennews/art.shtml?num=52442

Добавить комментарий