The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

26.02.2020 20:57

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

  1. Главная ссылка к новости (https://blog.exodusintel.com/2...)
  2. OpenNews: Лог изменений в V8 помог создать эксплоит для неисправленной уязвимости в Chrome
  3. OpenNews: Уязвимость, позволяющая дополнениям Chrome выполнять внешний код, несмотря на права доступа
  4. OpenNews: Уязвимость в SQLite, позволяющая удалённо атаковать Chrome через WebSQL
  5. OpenNews: Уязвимость php-fpm, позволяющая удалённо выполнить код на сервере
  6. OpenNews: Обновление Chrome 78.0.3904.108 с устранением уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/52442-chrome
Ключевые слова: chrome, chromium, exploit, security, 0day
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (35) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
 
 
 
Часть нити удалена модератором

  • 4.10, Аноним (10), 21:15, 26/02/2020 [ответить]  
  • +2 +/
    А какое дела сэму от режима или от не режима? Платят в твердой валюте получают что хотят.
     
     
  • 5.38, Аноним (38), 11:40, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Сэм — не Сердюков, он не ради денег работает, а ради превосходства своей расы.
     
  • 1.2, Аноним (2), 21:06, 26/02/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

  • 1.3, имя (ok), 21:06, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    >  упрощение создания эксплоитов из-за включения в Chrome 80 механизма упаковки указателей

    «Нет смысла экономить адресное пространство», — говорили некоторые, — «и вообще оперативка дешёвая…»

     
     
  • 2.6, Аноним (6), 21:10, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сэкономили память - получили уязвимость.
     
     
  • 3.13, Аноним (13), 21:47, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Не саму уязвимость, а просто стало проще их использовать.
     
  • 3.15, пох. (?), 21:51, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    первый аноним говорил явно об экономии памяти другим, разумным способом - аккуратным написанием кода.
    А тут сначала нажрали как не в себя, "по процессу на вкладку", а потом придумали грязный хак для "экономии", ну не переписывать же ж, на самом деле, макачий код?

     
     
  • 4.24, А (??), 23:39, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    luck(){return min(time_to_market)}
     
     
  • 5.45, хотел спросить (?), 04:07, 28/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    а потом shit() { return true; }
     
  • 4.41, Урри (?), 16:55, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Процесс на вкладку" тут совершенно не при чем, так как общая память между процессами шарится, а необщая все равно бы дублировалась между вкладками.

    Дело в буяк-буяк-и-в-продакшен ввиду "че вам, западло себе еще одну планку за копейки докупить?" (чем, кстати, разные мартышки тут на форуме регулярно отмечаются).

     
     
  • 5.43, Аноним (43), 19:50, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сам процесс требует немалого кол-ва ресурсов ядра, коммуникация между процессами не из дешёвых. Изоляция процессами на самом деле очень не дешево обходится
     
  • 5.44, пох. (?), 22:41, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    у нас сесурить, изоляция, не хрен собачий - так что тут общее правило что "форк бесплатный" не работает, к сожалению - она почти вся будет в каждой вкладке заново проинициализирована.

    А возможностей общего механизма управления, позволяющего хотя бы gc иметь один на всех - не будет.

    Ну и V8 сам по себе, разумеется, ни разу не из соображений экономии писали.

     
  • 3.22, zzz (??), 23:19, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вместо оптимизации движка начали ковырять окраины - получили уязвимость.
     

  • 1.7, Аноним (7), 21:13, 26/02/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
  • 1.9, Аноним (10), 21:14, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Не хватает вариативности мнений. А где же в ФФ уязвимости никто не ищет и никто ФФ не пользуется?
     
     
  • 2.11, Аноним (11), 21:28, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мало пользуются → мало ищут → мало находят.

    Вот недавно одни ребята решили сделать аудит OpenSMTPD, впервые за всю историю проекта. С закономерными последствиями. Вот так модель безопасности «неуловимый Джо» не выдержала столкновения с суровой реальностью.

     
     
  • 3.23, zzz (??), 23:20, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И было найдено в "бажном"OpenSMTPd ажно три уязвимости. Всем лежать-бояться. А вот в постфиксе их гораздо меньше, да.
     
     
  • 4.26, gogo (?), 01:35, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Удаленный рут с одной команды - это даже  не  "бояться", это лежать мертвым.
     
  • 3.25, DerRoteBaron (ok), 00:42, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Вот недавно одни ребята решили сделать аудит OpenSMTPD, впервые за всю историю проекта

    который обнаружил, что разработчики не полностью закрыли старую дыру, найденную в результате предыдущего аудита, по вашей логике произошедшего до начала истории проекта

     
     
  • 4.39, Аноним (38), 11:42, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > который обнаружил, что разработчики не полностью закрыли старую дыру, найденную в результате предыдущего аудита, по вашей логике произошедшего до начала истории проекта

    По логике, люди, не способные закрыть уязвимость, о которой им рассказали, просто не обладают достаточной квалификацией, чтобы писать безопасный код.

     
  • 2.37, КО (?), 09:34, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В тексте же написано - в FF устранили еще летом.
     

  • 1.12, Аноним (12), 21:45, 26/02/2020 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     

     ....ответы скрыты (2)

  • 1.14, Нанобот (ok), 21:47, 26/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Исследователи из компании Exodus Intelligence не знают значения термина "0-day"
     
     
  • 2.16, пох. (?), 21:51, 26/02/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    нет, это ты его не знаешь.
     

  • 1.28, Аноним (-), 04:48, 27/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > значительно сократить потребление памяти в куче

    Я с них прусь. Сперва сожрут прорву памяти нафоркав 100500 процессов, потом чешут репу - блин, что-то жирно, давайте вкостылим указатели?!

     
     
  • 2.31, Аноним (31), 07:56, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    а ты покажи им и нам свой богоподобный код. глядишь, и научимся чему-нибудь
     
     
  • 3.33, Аноним (33), 08:16, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А вы понимаете что браузер разрабатывает компания, которая на софте собаку съела? То есть это нормально для многомиллиардной компании добавлять костыли тут и там и говорить "и так сойдёт"? Если так, боюсь представить, что же там в проприетарном софте творится, наверное вообще беспредел.
     
     
  • 4.36, Аноним (36), 09:25, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда бойся. Все остальные понимают что там творится. Вот тебе стенания бывшего разработчика БД Орацле:
    https://news.ycombinator.com/item?id=18442941
     
  • 4.42, Урри (?), 16:57, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для многомиллиардной - да, нормально. Все равно вы все будете кушать. Так какой смысл тратить лишние миллионы?
     
  • 3.34, Аноним (34), 08:19, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > СПИРВАДАБЕЙСЯ!!! СЛЫШЕТЕ? СПИРВАДАБЕЙСЯ!!!

    Давай, ты нам сначала свой код покажешь, чтобы Легион мог оценить, насколько профессионально ты оценишь чужой код?

     
  • 2.35, Аноним (35), 08:21, 27/02/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я с них прусь. Сперва сожрут прорву памяти нафоркав 100500 процессов, потом
    > чешут репу - блин, что-то жирно, давайте вкостылим указатели?!

    Форки сами по себе кушают до смешного мало памяти. Не вините их за говнокод браузеров.

     

  • 1.40, Аноним (40), 15:25, 27/02/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Исследователи также обратили внимание на упрощение создания эксплоитов из-за включения в Chrome 80 механизма упаковки указателей .... Например, некоторые находящиеся в начале кучи структуры данных, такие как таблица встроенных функций, объекты "native context" и корневые объекты сборщика мусора, теперь размещаются по предсказуемым и доступным на запись упакованным адресам.

    Да это спецслужбы Google прогибают в разные позы.

    Они вообще к переполнения на куче плохо относятся. Все пользовались флагом gcc: -fstackprotector-all, а Google внедрил -fstackprotector-strong, который защищает не все.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру