В браузере Firefox обнаружена опасная уязвимость
Специалисты команды Cisco Talos сообщили о критической уязвимости (CVE-2020-12405) в браузере Mozilla Firefox, эксплуатация которой позволяет злоумышленнику удаленно выполнить код. Уязвимость была обнаружена исследователем Марцином Нога (Marcin Noga).
Проблема получила оценку в 8,8 балла по шкале CVSS и может быть проэксплуатирована только тогда, когда пользователь переходит на вредоносную страницу. Уязвимость затрагивает версию Firefox 76.0a1 x64 и содержится в компоненте SharedWorker и внутренних объектах, связанных с ним.
Как пояснили эксперты, для объекта SharedWorkerService выделение выполняется внутри потока, а освобождение происходит в результате обработки следующего события внутри другого потока. Однако выполнение потока продолжается, что приводит к использованию после освобождения объекта SharedWorkerService.
Уязвимость связана с отсутствием объекта Mutex в методе GetOrCreateWorkerManager. Таким образом, один и тот же объект SharedWorkerService передается в качестве аргумента методу GetOrCreateWorkerManagerRunnable и удаляется с помощью деструктора ~SharedWorkerManagerHolder.
"Корректная очистка кучи может дать злоумышленнику полный контроль над уязвимостью типа использование после освобождения (use-after-free) и, как следствие, может превратить ее в выполнение произвольного кода", - объяснили специалисты.
Для того чтобы проэксплуатировать уязвимость, злоумышленнику необходимо создать web-страницу HTML и настроить ее таким образом, чтобы она вызывала состояние гонки и приводила к уязвимости типа использование после освобождения, а затем к удаленному выполнению кода.