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ąć.
- aplikacje Flutter (niezależnie od platformy docelowej lub usługi),
- Aplikacje na platformy Apple (natywne) korzystające z Cloud Firestore
- aplikacje Unity kierowane na platformy Apple lub komputery i korzystające z Cloud Firestore;
- aplikacje w C++ na platformy Apple lub komputery, które korzystają z Cloud Firestore;
- aplikacje na Androida (natywne), które używają wtyczki Gradle Firebase App Distribution;
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:
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)
Przebuduj aplikację.
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:
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 WindowsWersje wtyczki, których dotyczy problem Wersje wtyczki z poprawką zabezpieczeń cloud_firestore7.0.0i starsze
(z wyjątkiem6.10.1i6.10.2)-
Opcja 1:
cloud_firestore7.1.0(FlutterFire BoM5.1.0lub nowszy) -
Opcja 2:
-
iOS i macOS:
cloud_firestore6.10.1(FlutterFire BoM4.20.1) -
Windows:
cloud_firestore6.10.2(FlutterFire BoM4.20.2)
-
iOS i macOS:
-
Opcja 1:
Zaktualizuj aplikację. Uruchom
flutter pub upgrade, aby zaktualizować wtyczkęcloud_firestoredo wybranej wersji.Przebuduj aplikację.
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:
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.0i wcześniejsze wersje
(z wyjątkiem12.19.3)-
Opcja 1:
13.1.1lub nowsza wersja -
Opcja 2:
12.19.3
-
Opcja 1:
Zaktualizuj aplikację. Postępuj zgodnie z instrukcjami dotyczącymi Twojego kanału dystrybucji:
SPM: zaktualizuj wersję zależności pakietu
firebase-ios-sdkw Xcode lubPackage.swift.Dystrybucja ZIP: pobierz plik
Firebase.zipw odpowiedniej wersji z GitHub Releases i zastąp istniejące pakiety.xcframeworkw projekcie.Carthage: zaktualizuj plik Cartfile, aby wskazywał odpowiednią wersję, i zaktualizuj zależności za pomocą Carthage.
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:
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.0i wcześniejsze wersje
(z wyjątkiem13.17.1)-
Opcja 1:
14.1.0lub nowsza -
Opcja 2:
13.17.1
-
Opcja 1:
Zaktualizuj aplikację. Pobierz pakiet Firebase Unity SDK w odpowiedniej wersji ze strony wersji na GitHubie.
Połącz i ponownie skompiluj aplikację. Połącz i ponownie skompiluj aplikacje na iOS i komputery.
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:
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.0i wcześniejsze wersje
(z wyjątkiem13.13.1)-
Opcja 1:
14.1.0lub nowsza wersja -
Opcja 2:
13.13.1
-
Opcja 1:
Zaktualizuj aplikację. Pobierz pakiet Firebase C++ SDK w odpowiedniej wersji ze strony z wersjami na GitHubie.
Połącz i ponownie skompiluj aplikację. Połącz i ponownie skompiluj aplikacje na iOS i komputery.
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:
Określ nową wersję wtyczki odpowiednią dla Twojej aplikacji. Możesz użyć wtyczki w wersji 5.3.1 lub nowszej.
Zaktualizuj plik Gradle. W pliku Gradle na poziomie głównym (na poziomie projektu) (
<project>/build.gradle.ktslub<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' } }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.