Обновления, необходимые для устранения уязвимости сертификата eMudhra

19 октября 2026 г. Google стало известно о взломе центра сертификации eMudhra. Чтобы устранить эту проблему, мы сразу же выпустили исправления системы безопасности для нескольких областей нашей экосистемы.

На этой странице вы узнаете, какие типы приложений затронуты и какие действия необходимо предпринять, чтобы устранить последствия компрометации сертификата eMudhra. Мы также предоставляем подробную информацию о проблеме безопасности.

Типы приложений, которых коснутся изменения, и необходимые действия

Из-за характера этой проблемы безопасности она затронула множество разных типов приложений. Если тип вашего приложения указан здесь, то, скорее всего, оно было затронуто. Ознакомьтесь с соответствующим разделом, чтобы узнать, какие действия вам нужно предпринять.

Это также касается других платформ, поддерживаемых сообществом, например нативных приложений React Native, предназначенных для платформ Apple и использующих Firestore.


Приложения Flutter

Приложения Flutter были затронуты по-разному. Ознакомьтесь с соответствующим разделом, чтобы понять, какие действия вам нужно предпринять.

Приложения Flutter, предназначенные для Android, Windows или Linux.

Браузеры и операционные системы использовали экстренные черные списки промежуточных сертификатов, но dart:io на Android, Windows и Linux проверяет цепочки сертификатов TLS с помощью собственного встроенного движка BoringSSL и не считывает черные списки промежуточных сертификатов ОС. Подробнее об этой рекомендации по безопасности…

Если у вас есть приложения Flutter или Dart, предназначенные для Android, Windows или Linux, выполните следующие действия:

  1. Перейдите на следующие версии Dart и Flutter:

    • Dart 3.13.7 или более поздней версии.
    • Flutter 3.47.8 или более поздней версии (с Dart 3.13.7 или более поздней версии)
  2. Пересоберите приложение.

  3. Повторно разверните приложение или двоичный файл. Повторно разверните приложения или двоичные файлы для Android, Windows и Linux, чтобы они включали обновления с исправлением системы безопасности.

Приложения Flutter, предназначенные для платформ Apple или Windows и использующие Cloud Firestore.

Если у вас есть приложение Flutter для платформ Apple (например, iOS) и в нем используется Cloud Firestore, выполните следующие действия:

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

    Плагин FlutterFire (flutterfire) – iOS, macOS или Windows.

    Затронутые версии плагина Версии плагина с исправлением уязвимости
    cloud_firestore 7.0.0 и более ранние версии
    (кроме 6.10.1 и 6.10.2)
    • Вариант 1. cloud_firestore 7.1.0 (FlutterFire BoM 5.1.0 или более поздней версии)
    • Вариант 2.
      • iOS и macOS: cloud_firestore 6.10.1 (FlutterFire BoM 4.20.1)
      • Windows: cloud_firestore 6.10.2 (FlutterFire BoM 4.20.2)
  2. Обновите приложение. Выполните команду flutter pub upgrade, чтобы обновить плагин cloud_firestore до нужной версии.

  3. Пересоберите приложение.

  4. Повторно опубликуйте приложение. Повторно опубликуйте приложение с обновленной версией SDK (например, в Apple App Store или на каналах распространения для компьютеров).

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



Приложения для платформы Apple (нативные), в которых используется Cloud Firestore

Если у вас есть нативное приложение для платформ Apple (например, iOS) и в нем используется Cloud Firestore, выполните следующие действия:

  1. Определите, какая версия SDK подходит для вашего приложения. Выберите версию SDK, которая подходит для вашего приложения, в зависимости от текущей версии SDK.

    Firebase SDK для платформ Apple (в частности, FirebaseFirestore)

    Затронутые версии SDK Версии SDK с исправлением уязвимости
    13.1.0 и более ранние версии
    (кроме 12.19.3)
    • Вариант 1. 13.1.1 или более поздняя версия
    • Вариант 2. 12.19.3
  2. Обновите приложение. Следуйте инструкциям для вашего канала распространения:

    • SPM. Обновите версию зависимости пакета firebase-ios-sdk в Xcode или Package.swift.

    • ZIP-архив. Скачайте файл Firebase.zip нужной версии со страницы GitHub Releases и замените существующие пакеты .xcframework в проекте.

    • Carthage. Обновите файл Cartfile, чтобы указать нужную версию, и обновите зависимости с помощью Carthage.

  3. Опубликуйте приложение повторно. Опубликуйте приложение с обновленной версией SDK (например, в Apple App Store или на каналах распространения для компьютеров).

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



Приложения Unity, предназначенные для платформ Apple или компьютеров и использующие Cloud Firestore.

Если у вас есть приложение Unity, предназначенное для платформ Apple (например, iOS), и в нем используется Cloud Firestore, выполните следующие действия:

  1. Определите, какая версия SDK подходит для вашего приложения. Выберите версию SDK, которая подходит для вашего приложения, в зависимости от текущей версии SDK.

    Firebase SDK для Unity (firebase-unity-sdk) – iOS или ПК (Linux, macOS, Windows)

    Затронутые версии SDK Версии SDK с исправлением уязвимости
    14.0.0 и более ранние версии
    (кроме 13.17.1)
    • Вариант 1. 14.1.0 или более поздняя версия
    • Вариант 2. 13.17.1
  2. Обновите приложение. Скачайте Firebase Unity SDK нужной версии со страницы выпуска на GitHub.

  3. Свяжите и пересоберите приложения. Свяжите и пересоберите приложения для iOS и компьютеров.

  4. Повторно опубликуйте приложение. Повторно опубликуйте приложение с обновленной версией SDK (например, в Apple App Store или на каналах распространения для компьютеров).

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



Приложения на C++ для платформ Apple или ПК, в которых также используется Cloud Firestore.

Если у вас есть приложение на C++ для платформ Apple (например, iOS) и в нем используется Cloud Firestore, выполните следующие действия:

  1. Определите, какая версия SDK подходит для вашего приложения. Выбор зависит от текущей версии SDK.

    Firebase SDK для C++ (firebase_cpp_sdk) – iOS или ПК (Linux, macOS, Windows)

    Затронутые версии SDK Версии SDK с исправлением уязвимости
    14.0.0 и более ранние версии
    (кроме 13.13.1)
    • Вариант 1. 14.1.0 или более поздняя версия
    • Вариант 2. 13.13.1
  2. Обновите приложение. Скачайте Firebase C++ SDK нужной версии со страницы выпуска на GitHub.

  3. Свяжите и пересоберите приложения. Свяжите и пересоберите приложения для iOS и компьютеров.

  4. Опубликуйте приложение повторно. Опубликуйте приложение с обновленной версией SDK (например, в Apple App Store или на каналах распространения для компьютеров).

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



Нативные приложения для Android, в которых используется плагин Gradle Firebase App Distribution.

Если у вас есть нативное приложение для Android, в котором используется плагин Gradle Firebase App Distribution, выполните следующие действия:

  1. Определите, какая версия плагина подходит для вашего приложения. Вы можете использовать версию 5.3.1 или более позднюю.

  2. Обновите файл Gradle. В файле Gradle корневого уровня (на уровне проекта) (<project>/build.gradle.kts или <project>/build.gradle) обновите плагин App Distribution Gradle до версии 5.3.1 или более поздней.

    Kotlin

    plugins {
        // ...
        // Update the version in the dependency for the App Distribution Gradle plugin.
        // Make sure the version is 5.3.1 or higher.
        id("com.google.firebase.appdistribution") version "5.3.1" apply false
    }
    

    Groovy

    plugins {
        // ...
        // Update the version in the dependency for the App Distribution Gradle plugin.
        // Make sure the version is 5.3.1 or higher.
        id 'com.google.firebase.appdistribution' version '5.3.1' apply false
    }
    

    buildscript (устаревший)

    buildscript {
        dependencies {
            // ...
            // Update the version in the dependency for the App Distribution Gradle plugin.
            // Make sure the version is 5.3.1 or higher.
            classpath 'com.google.firebase:firebase-appdistribution-gradle:5.3.1'
        }
    }
    
  3. Очистите и проверьте рабочие процессы CI/CD. Убедитесь, что ваши автоматизированные конвейеры сборки и развертывания (например, GitHub Actions, GitLab CI или Jenkins) извлекают обновленную версию плагина при выполнении таких задач, как ./gradlew appDistributionUpload<Variant>.



Подробная информация о том, что произошло.

19 октября 2026 года компания Google узнала, что закрытые ключи для нескольких промежуточных сертификатов центра сертификации (ЦС), выпущенных сторонним центром сертификации (eMudhra), были скомпрометированы и впоследствии отозваны. Подробную информацию можно найти в сообщении в блоге Google по безопасности.

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

Поскольку злоумышленники могут использовать скомпрометированные ключи центра сертификации для подделки сертификатов HTTPS, затронутые приложения не смогут обнаружить отзыв и продолжат доверять поддельным учетным данным. В результате злоумышленники могут проводить атаки типа "человек посередине", выдавая себя за настоящие бэкенд-серверы, включая Firestore и любые конечные точки HTTPS, к которым обращаются затронутые приложения Flutter/Dart или плагин App Distribution Gradle. Это позволяет злоумышленникам тайно перехватывать, красть или подделывать конфиденциальные пользовательские данные.

Чтобы защитить подключения клиентов от этого скомпрометированного центра сертификации, мы удалили корневые сертификаты, связанные со скомпрометированными промежуточными сертификатами eMudhra, в следующих продуктах:

  • SDK Cloud Firestore для Apple, Flutter, Unity и C++

    Бэкенд Cloud Firestore и другие компоненты Cloud Firestore не были затронуты.

  • Flutter SDK и плагин FlutterFire для Cloud Firestore

  • Плагин Gradle для Firebase App Distribution

    Бэкенд App Distribution и другие компоненты App Distribution не были затронуты.