Компания Mozilla предупредила о возникновении массовых проблем с дополнениями к Firefox. У всех пользователей браузера дополнения оказались заблокированными из-за истечения времени жизни промежуточного сертификата, применяемого в цепочке формирования цифровых подписей. Кроме того, отмечается невозможность установки новых дополнений из официального каталога AMO (addons.mozilla.org).
Выход из сложившейся ситуации пока не найден, разработчики Mozilla обдумывают возможные варианты исправления и пока ограничились только общим подтверждением возникшей ситуации. Упоминается только, что дополнения стали неактивны после наступления 0 часов (UTC) 4 мая 2019 года. Сертификат должен был обновиться неделю назад, но по каким-то причинам этого не произошло и данный факт остался незамеченным.
Теперь через несколько минут после запуска браузера выводится предупреждение об отключении дополнений из-за проблем с цифровой подписью и дополнения исчезают из списка. Проверка цифровой подписи осуществляется раз в сутки или после запуска браузера, поэтому в давно запущенных экземплярах Firefox дополнения могут отключиться не сразу.
В качестве обходного пути для возобновления доступа к дополнениям пользователям Linux можно отключить проверку цифровой подписи через установку в аbout:config переменной "xpinstall.signatures.required" в значение "false". Данный метод для стабильных и бета-выпусков работает только в Linux и Android, для Windows и macOS подобная манипуляция возможна только в ночных сборках и в версии для разработчиков (Developer Edition). Как вариант также можно изменить значение системных часов на время до истечения срока действия сертификата, тогда вернётся возможность установки дополнений из каталога AMO, но уже установленная метка отключения не снимается.
Напомним, что обязательная проверка дополнений Firefox по цифровым подписям была внедрена в апреле 2016 года. По мнению Mozilla проверка по цифровой подписи позволяет блокировать распространение вредоносных и шпионящих за пользователями дополнений. Некоторые разработчики дополнений не согласны с такой позицией и считают, что механизм обязательной проверки по цифровой подписи лишь создаёт сложности для разработчиков и приводит к увеличению времени доведения до пользователей корректирующих выпусков, никак не влияя на безопасность.
Существует множество тривиальных и очевидных приёмов для обхода системы автоматизированной проверки дополнений, позволяющих незаметно вставить вредоносный код, например, через формирование операции на лету путём соединения нескольких строк с последующим выполнением результирующей строки вызовом eval. Позиция Mozilla сводится к тому, что большинство авторов вредоносных дополнений ленивы и не будут прибегать к подобным техникам скрытия вредоносной активности.
Дополнение 1: Разработчики Mozilla сообщили о начале тестирования исправления, которое в случае успешной проверки в скором времени будет доведено до пользователей (решение о применении предложенного исправления ещё не принято). До применения исправления формирование цифровых подписей для новых дополнений отключено.
Дополнение 2: В 13:50 (MSK) 04.05.19 началосьраспространение исправления, на стороне пользователей возвращающего в строй отключившиеся дополнения. Исправление будет автоматически загружено и применено в течение нескольких часов. Для Firefox ESR и Firefox для Android исправление пока не сформировано. Также могут быть проблемы с доставкой исправления в сборки Firefox, установленные из пакетов в дистрибутивах.
Для ускорения доставки исправление оформлено в виде проводимых среди пользователей "исследований" (следует перейти в раздел "Firefox Preferences → Privacy & Security → Allow Firefox to install and run studies" и убедиться, что поддержка исследований включена, а также в "аbout:studies" проверить, что активно исследование hotfix-update-xpi-signing-intermediate-bug-1548973. После применения исправления поддержку исследований можно опять отключить. В дальнейшем планируется подготовить и обычное обновление, распространяемое через штатную систему доставки обновлений.
Дополнение 3: Исправление с обновлённым сертификатом можно установить вручную, для этого следует загрузить XPI и установить его из локального файла (кликнуть на шестерёнку в верхней правой части менеджера дополнений и выбрать "Install Add-on from File...").
Дополнение 4: Проблема также отразилась на пользователях Tor Browser, у которых отключилось поставляемое в комплекте дополнение NoScript, подписанное цифровой подписью Mozilla. Для возобновления работы NoScript разработчики Tor рекомендовали временно установить настройку xpinstall.signatures.required = false в аbout:config до того как будет доставлено исправление.
Дополнение 5: Для пользователей Firefox 56.0.2 и более старых выпусков, не включающих normandy (компонент для поддержки исследований, проведения опроса и внеплановой активации новых возможностей), на Reddit.com предложено решение проблемы путем извлечения сертификата из указанного выше исправления. После извлечения сертификата, его следует записать в pem-файл и импортировать через диалог "Options → Privacy & Security → Certifcates → View Certifcates → Authorities → Import";
Дополнение 6: Опубликованы полноценные корректирующие выпуски Firefox 66.0.4 и 60.6.2 ESR, в которых предложено исправление для замены просроченного сертификата и восстановления отключенных дополнений. Тем не менее, отмечается наличие нескольких нерешённых побочных эффектов:
∙ Некоторые дополнения, например Epubreader, не восстанавливаются в аbout:addons после обновлении сертификата или остаются в состоянии неподдерживаемых (unsupported). Проблема касается дополнений без идентификатора в файле manifest.json, которые удалялись при ошибке проверки цифровой подписи. В этом случае рекомендовано переустановить дополнение (данные восстановятся, так как они остаются в каталоге с профилем);
∙Наблюдается потеря данных и настроек в дополнениях, использующих функциональность контекстных контейнеров (Containers), например, в дополнениях Multi-Account Containers и Facebook Container. Пользователям рекомендовано с нуля перенастроить дополнения в аbout:addons;
∙Сбрасываются в значения по умолчанию изменённые дополнениями настройки домашней страницы и поисковых движков. Пользователю требуется заново настроить домашнюю страницу и поисковый движок.