Уязвимость затрагивает версию Firefox 76.0a1 x64 и содержится в компоненте SharedWorker.

Специалисты команды 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 и настроить ее таким образом, чтобы она вызывала состояние гонки и приводила к уязвимости типа использование после освобождения, а затем к удаленному выполнению кода.

Источник: securitylab