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

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

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

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

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

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