必須更新,才能修復 eMudhra 憑證遭入侵的問題

2026 年 10 月 19 日,Google 發現有憑證授權單位 (eMudhra) 遭到入侵。為解決這項安全性問題,我們立即針對生態系統的多個領域發布安全性修補程式。

本頁面可協助您瞭解受影響的應用程式類型,以及需要採取哪些行動,來修正這個 eMudhra 憑證遭入侵的問題。我們也會提供安全性問題的詳細資訊。

受影響的應用程式類型和必要動作

由於這項安全性問題的性質,許多不同類型的應用程式都受到影響。如果您的應用程式類型列在下方,則可能受到影響。請參閱適用章節,瞭解應採取的行動。

其他社群支援的平台也會受到影響 (例如,指定 Apple 平台且使用 Firestore 的 React Native 應用程式)。


Flutter 應用程式

Flutter 應用程式受到多種影響。請詳閱適用章節,瞭解應採取的行動。

指定 Android、Windows 或 Linux 的 Flutter 應用程式

雖然瀏覽器和作業系統會推送緊急中繼憑證封鎖清單,但 Android、Windows 和 Linux 上的 dart:io 會使用內建的 BoringSSL 引擎驗證 TLS 憑證鏈結,不會讀取 OS 中繼憑證封鎖清單。進一步瞭解這份安全性公告。

如果您的 Flutter 或 Dart 應用程式指定 Android、Windows 或 Linux,請採取下列行動:

  1. 升級至下列 Dart 和 Flutter 版本:

    • Dart 3.13.7 以上版本
    • Flutter 3.47.8 以上版本 (搭配 Dart 3.13.7 以上版本)
  2. 重建應用程式。

  3. 重新部署應用程式或二進位檔。 重新部署 Android、Window 和 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 應用程式商店或電腦發布管道)。

重新發布應用程式後,您需要鼓勵使用者更新至最新版本應用程式。由於 TLS 根憑證套件會編譯至應用程式二進位檔,因此單靠作業系統更新或伺服器端變更,無法修復先前安裝的應用程式版本。



使用 Cloud Firestore 的 Apple 平台應用程式 (原生)

如果您有原生 Apple 平台應用程式 (例如 iOS),且應用程式使用 Cloud Firestore,請採取下列行動:

  1. 判斷適合應用程式的 SDK 版本。 視目前的 SDK 版本而定,選擇適合應用程式的 SDK 版本。

    Firebase Apple 平台 (具體來說是 FirebaseFirestore) 的 SDK

    受影響的 SDK 版本 含有安全性修正的 SDK 版本
    13.1.0和更早版本
    (不含 12.19.3)
    • 選項 1:13.1.1 以上版本
    • 選項 2:12.19.3
  2. 更新應用程式。 請按照發行管道的操作說明進行:

    • SPM:在 Xcode 或 Package.swift 中更新 firebase-ios-sdk 套件依附元件版本。

    • Zip 發行版:從 GitHub 版本下載所需版本的 Firebase.zip,並取代專案中現有的 .xcframework 套件。

    • Carthage:更新 Cartfile,指定所需版本,並透過 Carthage 更新依附元件。

  3. 重新發布應用程式。 重新發布已更新 SDK 版本的應用程式 (例如發布到 Apple 應用程式商店或電腦版發布管道)。

重新發布應用程式後,您需要鼓勵使用者更新至最新版本。由於 TLS 根憑證套件會編譯至應用程式二進位檔,因此單靠作業系統更新或伺服器端變更,無法修正先前安裝的應用程式版本。



指定 Apple 或電腦平台且使用 Cloud Firestore 的 Unity 應用程式

如果您的 Unity 應用程式指定 Apple 平台 (例如 iOS),且使用 Cloud Firestore,請採取下列行動:

  1. 判斷適合應用程式的新 SDK 版本。 根據目前的 SDK 版本,選擇適合應用程式的 SDK 版本。

    Firebase SDK for 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. 更新應用程式。 從 GitHub 版本頁面下載所需版本的 Firebase Unity SDK。

  3. 連結並重新建構應用程式。連結並重新建構 iOS 和電腦應用程式。

  4. 重新發布應用程式。 重新發布已更新 SDK 版本的應用程式 (例如發布至 Apple 應用程式商店或電腦版發布管道)。

重新發布應用程式後,您需要鼓勵使用者更新至最新版本應用程式。由於 TLS 根憑證套件會編譯至應用程式二進位檔,因此單靠作業系統更新或伺服器端變更,無法修復先前安裝的應用程式版本。



指定 Apple 或電腦平台且使用 Cloud Firestore 的 C++ 應用程式

如果您的 C++ 應用程式指定 Apple 平台 (例如 iOS),且使用 Cloud Firestore,請採取下列行動:

  1. 判斷適合應用程式的新 SDK 版本。 根據目前的 SDK 版本,選擇適合應用程式的 SDK 版本。

    Firebase C++ SDK (firebase_cpp_sdk) - iOS 或電腦 (Linux、macOS、Windows)

    受影響的 SDK 版本 含有安全性修正的 SDK 版本
    14.0.0和更早版本
    (不含 13.13.1)
    • 選項 1:14.1.0 以上版本
    • 選項 2:13.13.1
  2. 更新應用程式。 從 GitHub 版本頁面下載所需版本的 Firebase C++ SDK。

  3. 連結並重新建構應用程式。連結並重新建構 iOS 和電腦應用程式。

  4. 重新發布應用程式。 重新發布已更新 SDK 版本的應用程式 (例如發布到 Apple 應用程式商店或電腦版發布管道)。

重新發布應用程式後,您需要鼓勵使用者更新至最新版本應用程式。由於 TLS 根憑證套件會編譯至應用程式二進位檔,因此單靠作業系統更新或伺服器端變更,無法修復先前安裝的應用程式版本。



使用 Firebase App Distribution Gradle 外掛程式的 Android 應用程式 (原生)

如果您的原生 Android 應用程式使用 Firebase App Distribution Gradle 外掛程式,請採取下列行動:

  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> 等工作時,會提取更新後的 Plugin 版本。



詳細說明

2026 年 10 月 19 日,Google 發現第三方憑證授權單位 (eMudhra) 核發的多個中繼憑證授權單位 (CA) 憑證私密金鑰遭外洩,隨後已撤銷 (詳情請參閱 Google 安全性網誌文章)。

雖然作業系統和網路瀏覽器已發布更新,不再信任系統信任存放區中的這些中繼憑證,但受影響的產品會使用編譯至二進位檔的內嵌根憑證組合,驗證傳輸層安全標準 (TLS) 連線。

攻擊者可能會利用遭入侵的憑證授權單位金鑰,偽造看似合法的 HTTPS 憑證,因此受影響的應用程式無法偵測到撤銷,並繼續信任假憑證。因此,網路上的攻擊者可以發動中間人攻擊,冒充真實的後端伺服器,包括 Firestore 和受影響的 Flutter/Dart 應用程式或 Firebase 應用程式發布 Gradle 外掛程式聯絡的任何 HTTPS 端點,暗中攔截、竊取或竄改敏感的使用者資料。

為保護用戶端連線不受這個遭入侵的憑證授權單位影響,我們已移除連結至遭入侵 eMudhra 中繼憑證的根憑證,藉此緩解這個問題:

  • 適用於 Apple、Flutter、Unity 和 C++ 的 Cloud Firestore SDK

    Cloud Firestore 後端和 Cloud Firestore 產品的其他部分均未受到影響。

  • Flutter SDK 和 Cloud Firestore 的 FlutterFire 外掛程式

  • Firebase App Distribution Gradle 外掛程式

    App Distribution 後端和 App Distribution 產品的其他部分均未受到影響。