Aggiornamenti necessari per rimediare alla compromissione del certificato eMudhra

Il 19 ottobre 2026, Google è venuta a conoscenza di un'autorità di certificazione compromessa (eMudhra). Per risolvere questo problema di sicurezza, abbiamo rilasciato immediatamente patch di sicurezza per diverse aree del nostro ecosistema.

Questa pagina ti aiuta a comprendere i tipi di app interessati e le eventuali azioni richieste per rimediare alla compromissione del certificato eMudhra. Forniamo anche informazioni dettagliate sul problema di sicurezza.

Tipi di app interessati e azioni richieste

A causa della natura di questo problema di sicurezza, sono stati interessati molti tipi diversi di app. Se il tipo della tua app è elencato qui, è probabile che sia interessato. Consulta la sezione applicabile per scoprire quali azioni devi intraprendere.

Sono interessate anche altre piattaforme supportate dalla community (ad esempio, app React Native che hanno come target le piattaforme Apple e utilizzano Firestore).


App Flutter

Le app Flutter sono state interessate in vari modi. Consulta la sezione applicabile per capire quali azioni devi intraprendere.

App Flutter destinate ad Android, Windows o Linux

Mentre i browser e i sistemi operativi hanno introdotto liste bloccate di emergenza per i certificati intermedi, dart:io su Android, Windows e Linux convalida le catene di certificati TLS utilizzando il proprio motore BoringSSL compilato e non legge le liste bloccate di certificati intermedi del sistema operativo. Scopri di più su questo avviso di sicurezza.

Se hai app Flutter o Dart che hanno come target Android, Windows o Linux, segui questi passaggi:

  1. Esegui l'upgrade alle seguenti versioni di Dart e Flutter:

    • Dart 3.13.7 o versioni successive
    • Flutter 3.47.8 o versioni successive (con Dart 3.13.7 o versioni successive)
  2. Ricostruisci l'app.

  3. Rifai il deployment dell'app o del file binario. Rifai il deployment delle app o dei file binari Android, Windows e Linux in modo che includano gli aggiornamenti con la correzione di sicurezza.

App Flutter che hanno come target piattaforme Apple o Windows e utilizzano Cloud Firestore

Se hai un'app Flutter che ha come target le piattaforme Apple (ad esempio iOS) e la tua app utilizza Cloud Firestore, procedi come segue:

  1. Determina la versione del plug-in appropriata per la tua app. A seconda della versione attuale del plug-in, scegli una versione del plug-in appropriata per la tua app.

    Plugin FlutterFire (flutterfire): iOS, macOS o Windows

    Versioni del plug-in interessate Versioni del plug-in con la correzione di sicurezza
    cloud_firestore 7.0.0 e versioni precedenti
    (esclusi 6.10.1 e 6.10.2)
    • Opzione 1: cloud_firestore 7.1.0 (FlutterFire BoM 5.1.0 o versioni successive)
    • Opzione 2:
      • iOS e macOS: cloud_firestore 6.10.1 (FlutterFire BoM 4.20.1)
      • Windows: cloud_firestore 6.10.2 (FlutterFire BoM 4.20.2)
  2. Aggiorna l'app. Esegui flutter pub upgrade per aggiornare il plug-in cloud_firestore alla versione che preferisci.

  3. Ricostruisci l'app.

  4. Ripubblica l'app.Ripubblica l'app con la versione aggiornata dell'SDK (ad esempio, nell'Apple App Store o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.



App per piattaforme Apple (native) che utilizzano Cloud Firestore

Se hai un'app per piattaforme Apple native (ad esempio iOS) e la tua app utilizza Cloud Firestore, procedi nel seguente modo:

  1. Determina la versione dell'SDK appropriata per la tua app. A seconda della versione attuale dell'SDK, scegli una versione dell'SDK appropriata per la tua app.

    SDK Firebase per piattaforme Apple (nello specifico, FirebaseFirestore)

    Versioni dell'SDK interessate Versioni dell'SDK con la correzione di sicurezza
    13.1.0 e versioni precedenti
    (escluso 12.19.3)
    • Opzione 1: 13.1.1 o versioni successive
    • Opzione 2: 12.19.3
  2. Aggiorna l'app. Segui le istruzioni per il tuo canale di distribuzione:

    • SPM: aggiorna la versione della dipendenza del pacchetto firebase-ios-sdk in Xcode o Package.swift.

    • Distribuzione ZIP: da GitHub Releases, scarica Firebase.zip per la versione che ti interessa e sostituisci i bundle .xcframework esistenti nel tuo progetto.

    • Carthage: aggiorna il tuo Cartfile in modo che abbia come target la versione desiderata e aggiorna le dipendenze tramite Carthage.

  3. Ripubblica l'app. Ripubblica l'app con la versione aggiornata dell'SDK (ad esempio, nell'Apple App Store o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.



App Unity destinate a piattaforme Apple o desktop e che utilizzano Cloud Firestore

Se hai un'app Unity che ha come target le piattaforme Apple (ad esempio iOS) e utilizza Cloud Firestore, segui questi passaggi:

  1. Determina la nuova versione dell'SDK appropriata per la tua app. A seconda della versione attuale dell'SDK, scegli una versione dell'SDK appropriata per la tua app.

    SDK Firebase per Unity (firebase-unity-sdk): iOS o desktop (Linux, macOS, Windows)

    Versioni dell'SDK interessate Versioni dell'SDK con la correzione di sicurezza
    14.0.0 e versioni precedenti
    (escluso 13.17.1)
    • Opzione 1: 14.1.0 o versioni successive
    • Opzione 2: 13.17.1
  2. Aggiorna l'app. Scarica l'SDK Firebase Unity per la versione che preferisci dalla pagina delle release di GitHub.

  3. Collega e ricrea l'app. Collega e ricrea le tue applicazioni iOS e desktop.

  4. Ripubblica l'app. Ripubblica l'app con la versione aggiornata dell'SDK (ad esempio, nell'Apple App Store o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.



App C++ destinate a piattaforme Apple o desktop e che utilizzano Cloud Firestore

Se hai un'app C++ che ha come target le piattaforme Apple (ad esempio iOS) e la tua app utilizza Cloud Firestore, procedi nel seguente modo:

  1. Determina la nuova versione dell'SDK appropriata per la tua app. A seconda della versione attuale dell'SDK, scegli una versione dell'SDK appropriata per la tua app.

    SDK Firebase per C++ (firebase_cpp_sdk): iOS o computer (Linux, macOS, Windows)

    Versioni dell'SDK interessate Versioni dell'SDK con la correzione di sicurezza
    14.0.0 e versioni precedenti
    (escluso 13.13.1)
    • Opzione 1: 14.1.0 o versioni successive
    • Opzione 2: 13.13.1
  2. Aggiorna l'app. Scarica l'SDK Firebase C++ per la versione che ti interessa dalla pagina delle release di GitHub.

  3. Collega e ricrea l'app. Collega e ricrea le tue applicazioni iOS e desktop.

  4. Ripubblica l'app. Ripubblica l'app con la versione aggiornata dell'SDK (ad esempio, nell'Apple App Store o nei canali di distribuzione per computer).

Dopo aver ripubblicato l'app, devi invitare gli utenti finali a eseguire l'aggiornamento all'ultima versione dell'app. Poiché il bundle di certificati radice TLS è compilato nel file binario dell'applicazione, gli aggiornamenti del sistema operativo o le modifiche lato server da soli non correggono le build dell'applicazione installate in precedenza.



App Android (native) che utilizzano il plug-in Gradle Firebase App Distribution

Se hai un'app per Android nativa che utilizza il plug-in Gradle Firebase App Distribution, segui questi passaggi:

  1. Determina la nuova versione del plug-in appropriata per la tua app. Puoi utilizzare la versione 5.3.1 o successive del plug-in.

  2. Aggiorna il file Gradle. Nel file Gradle a livello di directory principale (a livello di progetto) (<project>/build.gradle.kts o <project>/build.gradle), aggiorna il plug-in Gradle App Distribution alla versione 5.3.1 o successive:

    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 (legacy)

    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. Pulisci e verifica i flussi di lavoro CI/CD. Assicurati che le pipeline di build e deployment automatici (come GitHub Actions, GitLab CI o Jenkins) eseguano il pull della versione aggiornata del plug-in durante l'esecuzione di attività come ./gradlew appDistributionUpload<Variant>.



Informazioni dettagliate sull'accaduto

Il 19 ottobre 2026, Google è venuta a conoscenza del fatto che le chiavi private di diversi certificati di autorità di certificazione (CA) intermedie emessi da un'autorità di certificazione di terze parti (eMudhra) erano state compromesse e successivamente revocate (per maggiori dettagli, consulta il post del blog sulla sicurezza di Google).

Sebbene i sistemi operativi e i browser web abbiano distribuito aggiornamenti per non considerare attendibili questi certificati intermedi negli archivi di attendibilità del sistema, i prodotti interessati convalidano le connessioni Transport Layer Security (TLS) utilizzando un bundle di certificati radice incorporato compilato nel file binario.

Poiché gli utenti malintenzionati possono utilizzare le chiavi dell'autorità di certificazione compromesse per falsificare certificati HTTPS apparentemente legittimi, le app interessate non rileveranno la revoca e continueranno a considerare attendibili le credenziali false. Di conseguenza, gli utenti malintenzionati sulla rete possono eseguire attacchi man in the middle per impersonare i server di backend reali, inclusi Firestore e tutti gli endpoint HTTPS contattati dalle app Flutter/Dart interessate o dal plug-in Gradle di App Distribution, intercettando, rubando o manomettendo segretamente i dati utente sensibili.

Per proteggere le connessioni client da questa autorità di certificazione compromessa, abbiamo mitigato il problema rimuovendo i certificati radice che si collegano agli intermedi eMudhra compromessi nei seguenti elementi:

  • SDK Cloud Firestore per Apple, Flutter, Unity e C++

    Il backend di Cloud Firestore non è stato interessato, né lo è stata nessun'altra parte del prodotto Cloud Firestore.

  • L'SDK Flutter e il plug-in FlutterFire per Cloud Firestore

  • Il plug-in Gradle Firebase App Distribution

    Il backend di App Distribution non è stato interessato, né lo è stata nessun'altra parte del prodotto App Distribution.