Firefox ESR 153.4 закрывает 62 уязвимости, включая побег из песочницы

Firefox

Сентябрьское обновление Firefox ESR 153.4 закрывает 62 уязвимости. Тридцать четыре из них Mozilla относит к высокому уровню угрозы, двадцать - к среднему, восемь - к низкому. Речь идёт о ветке Extended Support Release, то есть о версии браузера с длительным сроком поддержки. Её выбирают организации и ведомства, где обновления ставят редко и по заранее согласованному плану. Правки датированы 29 сентября.

Детали уязвимостей

Больше двадцати пяти ошибок относятся к одному классу - работе с памятью. Программа выделяет участок под данные, освобождает его, а затем снова к нему обращается. Так возникает использование освобождённой памяти (use-after-free). Если злоумышленник угадает момент, он подставит в освобождённый участок своё содержимое. Дальше он добьётся выполнения собственного кода. Такие ошибки разбросаны по разным частям браузера. От движка JavaScript и модуля WebAssembly до графики, вёрстки текста и хранилища IndexedDB.

Отдельная линия - побеги из песочницы. Песочница (изолированная среда) удерживает код со сторонних страниц в стороне от остальной системы. Даже удачный эксплойт внутри неё остаётся в ограниченном контуре. В этом выпуске Mozilla закрыла больше десятка уязвимостей, которые позволяют этот контур покинуть. Среди затронутых узлов - навигация по документам, обработка графики, механизм отрисовки WebRender, служебные надстройки XUL и подсистема изоляции процессов. Каждый такой побег сам по себе не даёт полного контроля над машиной, но в связке с другой ошибкой заметно расширяет возможности атакующего.

Ещё несколько проблем высокого уровня связаны с движком JavaScript. В одном случае своевременная компиляция (JIT) собирает машинный код неверно, во втором при разборе того же модуля WebAssembly возникает недопустимый указатель. Обе ошибки открывают путь к исполнению чужого кода, потому что сбой в компиляции на лету ломает привычные границы между данными и командами. Рядом стоят неинициализированная память в компонентах хранения квот и воспроизведения аудио и видео, нарушение границ массивов в модуле мультимедиа и раскрытие информации через сетевой узел для работы с архивами JAR. Каждая из них по отдельности выглядит скромнее, но вместе они складываются в общую картину: ошибок в коде много, и они затрагивают разные слои браузера.

Средний уровень угрозы охватывает двадцать уязвимостей. Здесь и повышение привилегий в службах динамических библиотек, и обход политики одного источника в панели инструментов разработчика и в менеджере расширений, и сбои изоляции сайтов, и отказ в обслуживании в графике. Политика одного источника не даёт странице читать данные с чужого сайта, поэтому её обход превращает, казалось бы, безобидную вкладку в инструмент сбора чужих данных. Среди средних отметились также неверное обращение с криптографией в менеджере квот и ошибки в обработке служебных рабочих потоков.

Восемь уязвимостей получили низкий уровень. Они дают повышение привилегий в модуле закладок и истории, отказ в обслуживании в хранилище, обход защитных механизмов в навигации и работе с безопасностью документов, а также подмену содержимого в сетевом обмене по протоколу HTTP. Низкий уровень не значит безвредный: такие ошибки часто служат последним звеном в цепочке, когда первые шаги уже пройдены.

Mozilla объясняет необычно длинный список сменой подхода к публикации. Раньше внутренние ошибки работы с памятью сводили в одну общую уязвимость с единым идентификатором. Теперь у каждого найденного бага отдельная запись и собственный CVE (идентификатор уязвимости). Отсюда и заметное число строк в бюллетене: часть прежних выпусков выглядела короче не потому, что ошибок было меньше, а потому, что их упаковывали в один пункт.

Большинство уязвимостей Mozilla нашла своими силами. Среди внешних исследователей, чьи находки вошли в выпуск, - Мохамед Мбарек, Якуб Альдурайхим, Томер Фичман, участник под ником 5up3rh3i, Карло Ди Дато, Кхань Нгуен, Финн Вестендорф, Ринтаро Кавасуги, Чан Куак и Томоя Наканиси. Часть отчётов пришла от Эми Бернетт из OpenAI. Имена стоит упомянуть хотя бы потому, что за каждой строкой стоит отдельная работа по воспроизведению сбоя и доказательству, что его можно использовать.

Обновление до версии 153.4 закрывает весь список. Владельцам парка машин на ESR стоит поставить его без задержки. Эта ветка обновляется реже обычной, поэтому разрыв между выходом исправления и его установкой здесь обычно больше. Mozilla не сообщает об эксплуатации этих уязвимостей в реальных атаках. Однако побеги из песочницы и ошибки работы с памятью привлекают внимание атакующих, ведь они позволяют обойти защиту, на которую браузер полагается при открытии незнакомых сайтов.

Для организаций, которые держат браузер на большом числе рабочих мест, обновление ESR обычно растягивается на недели из-за проверок совместимости. Именно в этот период машины остаются уязвимыми. Побеги из песочницы появились сразу в нескольких подсистемах, и это показывает, что изоляция процессов остаётся самым нагруженным участком кода. Чем сложнее устроен браузер, тем больше в нём мест, где граница между безопасным и опасным кодом истончается. Свежий выпуск ESR закрывает текущий набор таких мест, но следующий цикл проверок почти наверняка принесёт новый.

Ссылки

Комментарии: 0