Изучая вносимые в репозиторий исправления исследователи обратили внимание на добавленное 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