Aktualizacje wymagane do usunięcia skutków naruszenia certyfikatu eMudhra

19 października 2026 r. firma Google dowiedziała się o przejęciu urzędu certyfikacji (eMudhra). Aby rozwiązać ten problem, natychmiast wydaliśmy poprawki zabezpieczeń dla kilku obszarów naszego ekosystemu.

Na tej stronie znajdziesz informacje o typach aplikacji, których dotyczy problem, oraz o wymaganych działaniach, które należy podjąć, aby rozwiązać problem z naruszonym certyfikatem eMudhra. Udostępniamy też szczegółowe informacje o problemie z bezpieczeństwem.

Typy aplikacji, których dotyczy problem, i wymagane działania

Ze względu na charakter tego problemu z bezpieczeństwem dotyczył on wielu różnych typów aplikacji. Jeśli typ Twojej aplikacji jest tutaj wymieniony, prawdopodobnie problem dotyczy również jej. Zapoznaj się z odpowiednią sekcją, aby dowiedzieć się, jakie działania musisz podjąć.

Dotyczy to również innych platform obsługiwanych przez społeczność (np. aplikacji React Native kierowanych na platformy Apple i korzystających z Firestore).


aplikacje Flutter,

Aplikacje Flutter zostały dotknięte na różne sposoby. Zapoznaj się z odpowiednią sekcją, aby dowiedzieć się, co musisz zrobić.

aplikacje Flutter na Androida, system Windows lub Linux;

Przeglądarki i systemy operacyjne wprowadziły awaryjne listy zablokowanych certyfikatów pośrednich, ale dart:io na Androidzie, Windowsie i Linuksie weryfikuje łańcuchy certyfikatów TLS za pomocą własnego skompilowanego silnika BoringSSL i nie odczytuje list zablokowanych certyfikatów pośrednich systemu operacyjnego. Dowiedz się więcej o tym ostrzeżeniu dotyczącym bezpieczeństwa.

Jeśli masz aplikacje Flutter lub Dart przeznaczone na Androida, system Windows lub Linux, wykonaj te czynności:

  1. Uaktualnij do tych wersji Dart i Flutter:

    • Dart 3.13.7 lub nowszy,
    • Flutter 3.47.8 lub nowszy (z Dart 3.13.7 lub nowszym)
  2. Przebuduj aplikację.

  3. Wdróż ponownie aplikację lub plik binarny. Wdróż ponownie aplikacje lub pliki binarne na Androida, Windowsa i Linuksa, aby zawierały aktualizacje z poprawką zabezpieczeń.

Aplikacje Flutter kierowane na platformy Apple lub Windows i korzystające z Cloud Firestore

Jeśli masz aplikację Flutter kierowaną na platformy Apple (np. iOS) i używa ona pakietu Cloud Firestore, wykonaj te czynności:

  1. Określ wersję wtyczki odpowiednią dla Twojej aplikacji W zależności od bieżącej wersji wtyczki wybierz wersję odpowiednią dla Twojej aplikacji.

    Wtyczka FlutterFire (flutterfire) – iOS, macOS lub Windows

    Wersje wtyczki, których dotyczy problem Wersje wtyczki z poprawką zabezpieczeń
    cloud_firestore 7.0.0 i starsze
    (z wyjątkiem 6.10.1 i 6.10.2)
    • Opcja 1: cloud_firestore 7.1.0 (FlutterFire BoM 5.1.0 lub nowszy)
    • Opcja 2:
      • iOS i macOS: cloud_firestore 6.10.1 (FlutterFire BoM 4.20.1)
      • Windows: cloud_firestore 6.10.2 (FlutterFire BoM 4.20.2)
  2. Zaktualizuj aplikację. Uruchom flutter pub upgrade, aby zaktualizować wtyczkę cloud_firestore do wybranej wersji.

  3. Przebuduj aplikację.

  4. Ponownie opublikuj aplikację. Ponownie opublikuj aplikację ze zaktualizowaną wersją pakietu SDK (np. w Apple App Store lub w kanałach dystrybucji na komputery).

Po ponownym opublikowaniu aplikacji musisz zachęcić użytkowników do jej zaktualizowania do najnowszej wersji. Pakiet certyfikatów głównych TLS jest kompilowany do pliku binarnego aplikacji, dlatego same aktualizacje systemu operacyjnego lub zmiany po stronie serwera nie naprawią wcześniej zainstalowanych kompilacji aplikacji.



Aplikacje na platformy Apple (natywne), które używają Cloud Firestore

Jeśli masz natywną aplikację na platformy Apple (np. iOS) i korzysta ona z Cloud Firestore, wykonaj te czynności:

  1. Określ wersję pakietu SDK odpowiednią dla Twojej aplikacji. W zależności od bieżącej wersji pakietu SDK wybierz wersję, która jest odpowiednia dla Twojej aplikacji.

    Pakiet SDK Firebase na platformy Apple (konkretnie FirebaseFirestore)

    Wersje pakietu SDK, w których występuje problem Wersje pakietu SDK z poprawką zabezpieczeń
    13.1.0 i wcześniejsze wersje
    (z wyjątkiem 12.19.3)
    • Opcja 1: 13.1.1 lub nowsza wersja
    • Opcja 2: 12.19.3
  2. Zaktualizuj aplikację. Postępuj zgodnie z instrukcjami dotyczącymi Twojego kanału dystrybucji:

    • SPM: zaktualizuj wersję zależności pakietu firebase-ios-sdk w Xcode lub Package.swift.

    • Dystrybucja ZIP: pobierz plik Firebase.zip w odpowiedniej wersji z GitHub Releases i zastąp istniejące pakiety .xcframework w projekcie.

    • Carthage: zaktualizuj plik Cartfile, aby wskazywał odpowiednią wersję, i zaktualizuj zależności za pomocą Carthage.

  3. Ponownie opublikuj aplikację. Ponownie opublikuj aplikację ze zaktualizowaną wersją pakietu SDK (np. w Apple App Store lub w kanałach dystrybucji na komputery).

Po ponownym opublikowaniu aplikacji musisz zachęcić użytkowników do zaktualizowania jej do najnowszej wersji. Ponieważ pakiet certyfikatów głównych TLS jest kompilowany do pliku binarnego aplikacji, aktualizacje systemu operacyjnego lub zmiany po stronie serwera nie naprawią wcześniej zainstalowanych kompilacji aplikacji.



aplikacje Unity kierowane na platformy Apple lub komputery oraz korzystające z Cloud Firestore,

Jeśli masz aplikację Unity kierowaną na platformy Apple (np. iOS) i korzystającą z Cloud Firestore, wykonaj te czynności:

  1. Określ nową wersję pakietu SDK odpowiednią dla Twojej aplikacji. W zależności od bieżącej wersji pakietu SDK wybierz wersję pakietu SDK, która jest odpowiednia dla Twojej aplikacji.

    Pakiet SDK Firebase dla Unity (firebase-unity-sdk) – iOS lub komputer (Linux, macOS, Windows)

    Wersje pakietu SDK, w których występuje problem Wersje pakietu SDK z poprawką zabezpieczeń
    14.0.0 i wcześniejsze wersje
    (z wyjątkiem 13.17.1)
    • Opcja 1: 14.1.0 lub nowsza
    • Opcja 2: 13.17.1
  2. Zaktualizuj aplikację. Pobierz pakiet Firebase Unity SDK w odpowiedniej wersji ze strony wersji na GitHubie.

  3. Połącz i ponownie skompiluj aplikację. Połącz i ponownie skompiluj aplikacje na iOS i komputery.

  4. Ponownie opublikuj aplikację. Ponownie opublikuj aplikację ze zaktualizowaną wersją pakietu SDK (np. w Apple App Store lub w kanałach dystrybucji na komputery).

Po ponownym opublikowaniu aplikacji musisz zachęcić użytkowników do jej zaktualizowania do najnowszej wersji. Pakiet certyfikatów głównych TLS jest kompilowany do pliku binarnego aplikacji, dlatego same aktualizacje systemu operacyjnego lub zmiany po stronie serwera nie naprawią wcześniej zainstalowanych kompilacji aplikacji.



aplikacje w C++ na platformy Apple lub komputery oraz korzystające z Cloud Firestore.

Jeśli masz aplikację w C++ kierowaną na platformy Apple (np. iOS) i używa ona Cloud Firestore, wykonaj te czynności:

  1. Określ nową wersję pakietu SDK odpowiednią dla Twojej aplikacji. W zależności od bieżącej wersji pakietu SDK wybierz wersję pakietu SDK, która jest odpowiednia dla Twojej aplikacji.

    Pakiet SDK Firebase dla C++ (firebase_cpp_sdk) – iOS lub komputer (Linux, macOS, Windows)

    Wersje pakietu SDK, w których występuje problem Wersje pakietu SDK z poprawką zabezpieczeń
    14.0.0 i wcześniejsze wersje
    (z wyjątkiem 13.13.1)
    • Opcja 1: 14.1.0 lub nowsza wersja
    • Opcja 2: 13.13.1
  2. Zaktualizuj aplikację. Pobierz pakiet Firebase C++ SDK w odpowiedniej wersji ze strony z wersjami na GitHubie.

  3. Połącz i ponownie skompiluj aplikację. Połącz i ponownie skompiluj aplikacje na iOS i komputery.

  4. Ponownie opublikuj aplikację. Ponownie opublikuj aplikację ze zaktualizowaną wersją pakietu SDK (np. w Apple App Store lub w kanałach dystrybucji na komputery).

Po ponownym opublikowaniu aplikacji musisz zachęcić użytkowników do jej zaktualizowania do najnowszej wersji. Pakiet certyfikatów głównych TLS jest kompilowany do pliku binarnego aplikacji, dlatego same aktualizacje systemu operacyjnego lub zmiany po stronie serwera nie naprawią wcześniej zainstalowanych kompilacji aplikacji.



Aplikacje na Androida (natywne), które używają wtyczki Gradle Firebase App Distribution

Jeśli masz natywną aplikację na Androida, która korzysta z wtyczki Firebase App Distribution do obsługi Gradle, wykonaj te czynności:

  1. Określ nową wersję wtyczki odpowiednią dla Twojej aplikacji. Możesz użyć wtyczki w wersji 5.3.1 lub nowszej.

  2. Zaktualizuj plik Gradle. W pliku Gradle na poziomie głównym (na poziomie projektu) (<project>/build.gradle.kts lub <project>/build.gradle) zaktualizuj wtyczkę App Distribution do obsługi Gradle do wersji 5.3.1 lub nowszej:

    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 (starsza wersja)

    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. Wyczyść i zweryfikuj przepływy pracy CI/CD. Upewnij się, że zautomatyzowane potoki kompilacji i wdrażania (takie jak GitHub Actions, GitLab CI lub Jenkins) pobierają zaktualizowaną wersję wtyczki podczas wykonywania zadań takich jak ./gradlew appDistributionUpload<Variant>.



szczegółowe informacje o tym, co się stało;

19 października 2026 r. dowiedzieliśmy się, że klucze prywatne kilku certyfikatów pośrednich urzędu certyfikacji wydanych przez zewnętrzny urząd certyfikacji (eMudhra) zostały przejęte, a następnie unieważnione (więcej informacji znajdziesz w poście na blogu Google Security).

Systemy operacyjne i przeglądarki internetowe rozpowszechniły aktualizacje, które uniemożliwiają zaufanie tym certyfikatom pośrednim w systemowych magazynach zaufania, ale usługi, których dotyczy problem, sprawdzają poprawność połączeń Transport Layer Security (TLS) przy użyciu wbudowanego pakietu certyfikatów głównych skompilowanego w pliku binarnym.

Ponieważ hakerzy mogą używać przejętych kluczy urzędu certyfikacji do fałszowania certyfikatów HTTPS, które wyglądają na autentyczne, aplikacje, których dotyczy problem, nie wykryją unieważnienia i będą nadal ufać fałszywym danym logowania. W rezultacie hakerzy w sieci mogą przeprowadzać ataki typu „man-in-the-middle”, aby podszywać się pod prawdziwe serwery backendu, w tym Firestore i wszystkie punkty końcowe HTTPS, z którymi łączą się aplikacje Flutter/Dart lub wtyczka Gradle Rozpowszechniania aplikacji, i w ten sposób potajemnie przechwytywać, wykradać lub modyfikować poufne dane użytkowników.

Aby chronić połączenia klientów przed tym przejętym urzędem certyfikacji, rozwiązaliśmy ten problem, usuwając certyfikaty główne, które są powiązane z przejętymi certyfikatami pośrednimi eMudhra, w tych miejscach:

  • Pakiety SDK Cloud Firestore na platformy Apple, Flutter, Unity i C++

    Problem nie dotyczył backendu Cloud Firestore ani żadnej innej części usługi Cloud Firestore.

  • Pakiet SDK Flutter i wtyczka FlutterFire dla Cloud Firestore

  • Wtyczka Gradle Firebase App Distribution

    Problem nie dotyczył backendu App Distribution ani żadnej innej części usługi App Distribution.