Vào ngày 19 tháng 10 năm 2026, Google phát hiện một tổ chức phát hành chứng chỉ (eMudhra) bị xâm phạm. Để giải quyết vấn đề bảo mật này, chúng tôi đã ngay lập tức phát hành các bản vá bảo mật cho một số khía cạnh trong hệ sinh thái của mình.
Trang này giúp bạn hiểu rõ các loại ứng dụng bị ảnh hưởng và mọi hành động cần thực hiện để khắc phục sự cố xâm phạm chứng chỉ eMudhra này. Chúng tôi cũng cung cấp thông tin chi tiết về vấn đề bảo mật.
Các loại ứng dụng bị ảnh hưởng và hành động cần thực hiện
Do tính chất của vấn đề bảo mật này, nhiều loại ứng dụng khác nhau đã bị ảnh hưởng. Nếu loại ứng dụng của bạn có trong danh sách này, thì có thể ứng dụng đó đã bị ảnh hưởng. Hãy xem phần áp dụng để biết bạn cần làm gì.
- Ứng dụng Flutter (bất kể nền tảng hoặc sản phẩm mục tiêu)
- Ứng dụng nền tảng Apple (gốc) sử dụng Cloud Firestore
- Ứng dụng Unity nhắm đến nền tảng Apple hoặc máy tính và sử dụng Cloud Firestore
- Ứng dụng C++ nhắm đến nền tảng Apple hoặc máy tính và sử dụng Cloud Firestore
- Ứng dụng Android (gốc) sử dụng trình bổ trợ Gradle Firebase App Distribution
Các nền tảng khác do cộng đồng hỗ trợ cũng bị ảnh hưởng (ví dụ: các ứng dụng React Native nhắm đến nền tảng của Apple và sử dụng Firestore).
Ứng dụng Flutter
Ứng dụng Flutter bị ảnh hưởng theo nhiều cách. Hãy xem phần thích hợp để hiểu rõ những việc bạn cần làm.
Ứng dụng Flutter nhắm đến Android, Windows hoặc Linux
Trong khi các trình duyệt và hệ điều hành đẩy danh sách chặn chứng chỉ trung gian khẩn cấp, dart:io trên Android, Windows và Linux xác thực chuỗi chứng chỉ TLS bằng công cụ BoringSSL được biên dịch riêng và không đọc danh sách chặn chứng chỉ trung gian của hệ điều hành. Tìm hiểu thêm về thông báo bảo mật này.
Hãy thực hiện các hành động sau nếu bạn có ứng dụng Flutter hoặc Dart nhắm đến Android, Windows hoặc Linux:
Nâng cấp lên các phiên bản Dart và Flutter sau:
- Dart 3.13.7 trở lên
- Flutter 3.47.8 trở lên (có Dart 3.13.7 trở lên)
Tạo lại ứng dụng.
Triển khai lại ứng dụng hoặc tệp nhị phân. Triển khai lại ứng dụng hoặc tệp nhị phân Android, Windows và Linux để các ứng dụng hoặc tệp nhị phân này có các bản cập nhật kèm theo bản sửa lỗi bảo mật.
Ứng dụng Flutter nhắm đến nền tảng Apple hoặc Windows và sử dụng Cloud Firestore
Hãy thực hiện các hành động sau nếu bạn có một ứng dụng Flutter nhắm đến các nền tảng của Apple (ví dụ: iOS) và ứng dụng của bạn sử dụng Cloud Firestore:
Xác định phiên bản trình bổ trợ phù hợp với ứng dụng của bạn. Tuỳ thuộc vào phiên bản trình bổ trợ hiện tại, hãy chọn một phiên bản trình bổ trợ phù hợp với ứng dụng của bạn.
Trình bổ trợ FlutterFire (
flutterfire) — iOS, macOS hoặc WindowsCác phiên bản trình bổ trợ bị ảnh hưởng Phiên bản trình bổ trợ có bản sửa lỗi bảo mật cloud_firestore7.0.0trở xuống
(không bao gồm6.10.1và6.10.2)-
Cách 1:
cloud_firestore7.1.0(FlutterFire BoM5.1.0trở lên) -
Cách 2:
-
iOS và macOS:
cloud_firestore6.10.1(FlutterFire BoM4.20.1) -
Windows:
cloud_firestore6.10.2(FlutterFire BoM4.20.2)
-
iOS và macOS:
-
Cách 1:
Cập nhật ứng dụng. Chạy
flutter pub upgradeđể cập nhật trình bổ trợcloud_firestorelên phiên bản bạn muốn.Tạo lại ứng dụng.
Xuất bản lại ứng dụng. Xuất bản lại ứng dụng có phiên bản SDK đã cập nhật (ví dụ: lên Apple App Store hoặc các kênh phân phối dành cho máy tính).
Sau khi xuất bản lại ứng dụng, bạn cần khuyến khích người dùng cuối cập nhật lên phiên bản mới nhất của ứng dụng. Vì gói chứng chỉ gốc TLS được biên dịch thành tệp nhị phân của ứng dụng, nên chỉ riêng các bản cập nhật hệ điều hành hoặc thay đổi phía máy chủ sẽ không khắc phục được các bản dựng ứng dụng đã cài đặt trước đó.
Ứng dụng trên nền tảng của Apple (gốc) sử dụng Cloud Firestore
Hãy thực hiện những việc sau nếu bạn có một ứng dụng gốc trên nền tảng của Apple (ví dụ: iOS) và ứng dụng của bạn sử dụng Cloud Firestore:
Xác định phiên bản SDK phù hợp với ứng dụng của bạn. Tuỳ thuộc vào phiên bản SDK hiện tại, hãy chọn một phiên bản SDK phù hợp với ứng dụng của bạn.
SDK Firebase cho nền tảng Apple (cụ thể là
FirebaseFirestore)Các phiên bản SDK bị ảnh hưởng Các phiên bản SDK có bản sửa lỗi bảo mật 13.1.0trở xuống
(ngoại trừ12.19.3)-
Cách 1:
13.1.1trở lên -
Cách 2:
12.19.3
-
Cách 1:
Cập nhật ứng dụng. Làm theo hướng dẫn cho kênh phân phối của bạn:
SPM: Cập nhật phiên bản phần phụ thuộc của gói
firebase-ios-sdktrong Xcode hoặcPackage.swift.Bản phân phối Zip: Trên trang Bản phát hành GitHub, hãy tải
Firebase.zipxuống cho phiên bản mong muốn và thay thế các gói.xcframeworkhiện có trong dự án của bạn.Carthage: Cập nhật Cartfile để nhắm đến phiên bản mong muốn và cập nhật các phần phụ thuộc thông qua Carthage.
Xuất bản lại ứng dụng. Xuất bản lại ứng dụng có phiên bản SDK đã cập nhật (ví dụ: lên Apple App Store hoặc các kênh phân phối cho máy tính).
Sau khi xuất bản lại ứng dụng, bạn cần khuyến khích người dùng cuối cập nhật lên phiên bản mới nhất của ứng dụng. Vì gói chứng chỉ gốc TLS được biên dịch thành tệp nhị phân của ứng dụng, nên chỉ riêng các bản cập nhật hệ điều hành hoặc thay đổi phía máy chủ sẽ không khắc phục được các bản dựng ứng dụng đã cài đặt trước đó.
Ứng dụng Unity nhắm đến nền tảng Apple hoặc máy tính và sử dụng Cloud Firestore
Thực hiện các thao tác sau nếu bạn có một ứng dụng Unity nhắm đến các nền tảng của Apple (ví dụ: iOS) và ứng dụng của bạn sử dụng Cloud Firestore:
Xác định phiên bản SDK mới phù hợp với ứng dụng của bạn. Tuỳ thuộc vào phiên bản SDK hiện tại, hãy chọn một phiên bản SDK phù hợp với ứng dụng của bạn.
Firebase SDK cho Unity (
firebase-unity-sdk) — iOS hoặc Máy tính (Linux, macOS, Windows)Các phiên bản SDK bị ảnh hưởng Các phiên bản SDK có bản sửa lỗi bảo mật 14.0.0trở xuống
(ngoại trừ13.17.1)-
Cách 1:
14.1.0trở lên -
Cách 2:
13.17.1
-
Cách 1:
Cập nhật ứng dụng. Tải SDK của Firebase cho Unity của phiên bản mong muốn xuống từ trang phát hành trên GitHub.
Liên kết và tạo lại ứng dụng. Liên kết và tạo lại ứng dụng iOS và ứng dụng dành cho máy tính.
Xuất bản lại ứng dụng. Xuất bản lại ứng dụng có phiên bản SDK đã cập nhật (ví dụ: lên Apple App Store hoặc các kênh phân phối cho máy tính).
Sau khi xuất bản lại ứng dụng, bạn cần khuyến khích người dùng cuối cập nhật lên phiên bản mới nhất của ứng dụng. Vì gói chứng chỉ gốc TLS được biên dịch thành tệp nhị phân của ứng dụng, nên chỉ riêng các bản cập nhật hệ điều hành hoặc thay đổi phía máy chủ sẽ không khắc phục được các bản dựng ứng dụng đã cài đặt trước đó.
Ứng dụng C++ nhắm đến nền tảng Apple hoặc máy tính và sử dụng Cloud Firestore
Hãy thực hiện những việc sau nếu bạn có một ứng dụng C++ nhắm đến các nền tảng của Apple (ví dụ: iOS) và ứng dụng của bạn sử dụng Cloud Firestore:
Xác định phiên bản SDK mới phù hợp với ứng dụng của bạn. Tuỳ thuộc vào phiên bản SDK hiện tại, hãy chọn một phiên bản SDK phù hợp với ứng dụng của bạn.
Firebase SDK cho C++ (
firebase_cpp_sdk) — iOS hoặc Máy tính (Linux, macOS, Windows)Các phiên bản SDK bị ảnh hưởng Các phiên bản SDK có bản sửa lỗi bảo mật 14.0.0trở xuống
(ngoại trừ13.13.1)-
Cách 1:
14.1.0trở lên -
Cách 2:
13.13.1
-
Cách 1:
Cập nhật ứng dụng. Tải SDK C++ của Firebase cho phiên bản mong muốn xuống từ trang phát hành trên GitHub.
Liên kết và tạo lại ứng dụng. Liên kết và tạo lại ứng dụng iOS và ứng dụng dành cho máy tính.
Xuất bản lại ứng dụng. Xuất bản lại ứng dụng có phiên bản SDK đã cập nhật (ví dụ: lên Apple App Store hoặc các kênh phân phối cho máy tính).
Sau khi xuất bản lại ứng dụng, bạn cần khuyến khích người dùng cuối cập nhật lên phiên bản mới nhất của ứng dụng. Vì gói chứng chỉ gốc TLS được biên dịch thành tệp nhị phân của ứng dụng, nên chỉ riêng các bản cập nhật hệ điều hành hoặc thay đổi phía máy chủ sẽ không khắc phục được các bản dựng ứng dụng đã cài đặt trước đó.
Ứng dụng Android (gốc) sử dụng trình bổ trợ Gradle Firebase App Distribution
Hãy thực hiện các thao tác sau nếu bạn có một ứng dụng Android gốc sử dụng trình bổ trợ Gradle Firebase App Distribution:
Xác định phiên bản trình bổ trợ mới phù hợp với ứng dụng của bạn. Bạn có thể sử dụng trình bổ trợ phiên bản 5.3.1 trở lên.
Cập nhật tệp Gradle. Trong tệp Gradle cấp gốc (cấp dự án) (
<project>/build.gradle.ktshoặc<project>/build.gradle), hãy cập nhật trình bổ trợ Gradle App Distribution lên phiên bản 5.3.1 trở lên: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 (cũ)
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' } }Dọn dẹp và xác minh quy trình CI/CD. Đảm bảo quy trình xây dựng và triển khai tự động (chẳng hạn như GitHub Actions, GitLab CI hoặc Jenkins) lấy phiên bản trình bổ trợ mới nhất khi thực thi các tác vụ như
./gradlew appDistributionUpload<Variant>.
Thông tin chi tiết về vấn đề đã xảy ra
Vào ngày 19 tháng 10 năm 2026, Google phát hiện ra rằng khoá riêng tư của một số chứng chỉ Tổ chức phát hành chứng chỉ (CA) trung gian do một tổ chức phát hành chứng chỉ bên thứ ba (eMudhra) cấp đã bị xâm phạm và sau đó bị thu hồi (để biết thêm thông tin, hãy xem bài đăng trên Blog bảo mật của Google).
Mặc dù các hệ điều hành và trình duyệt web đã phân phối bản cập nhật để không tin tưởng các chứng chỉ trung gian này trong kho lưu trữ uy tín của hệ thống, nhưng các sản phẩm bị ảnh hưởng sẽ xác thực các kết nối Bảo mật tầng truyền tải (TLS) bằng một gói chứng chỉ gốc được nhúng và biên dịch thành tệp nhị phân.
Vì kẻ tấn công có thể sử dụng khoá của Tổ chức phát hành chứng chỉ bị xâm phạm để giả mạo chứng chỉ HTTPS trông có vẻ hợp pháp, nên các ứng dụng bị ảnh hưởng sẽ không phát hiện được việc thu hồi và tiếp tục tin tưởng thông tin xác thực giả mạo. Do đó, kẻ tấn công trên mạng có thể thực hiện các cuộc tấn công xen giữa để mạo danh máy chủ phụ trợ thực, bao gồm cả Firestore và mọi điểm cuối HTTPS mà các ứng dụng Flutter/Dart bị ảnh hưởng hoặc trình bổ trợ Gradle của App Distribution liên hệ, bí mật chặn, đánh cắp hoặc can thiệp vào dữ liệu nhạy cảm của người dùng.
Để bảo vệ các kết nối của ứng dụng khỏi tổ chức phát hành chứng chỉ bị xâm phạm này, chúng tôi đã giảm thiểu vấn đề này bằng cách xoá các chứng chỉ gốc liên kết với các chứng chỉ trung gian bị xâm phạm của eMudhra trong những trường hợp sau:
Cloud Firestore SDK cho Apple, Flutter, Unity và C++
Phần phụ trợ của Cloud Firestore không bị ảnh hưởng và các phần khác của sản phẩm Cloud Firestore cũng vậy.
Flutter SDK và trình bổ trợ FlutterFire cho Cloud Firestore
Trình bổ trợ Gradle Firebase App Distribution
Phần phụ trợ của App Distribution không bị ảnh hưởng và các phần khác của sản phẩm App Distribution cũng vậy.