Una vulnerabilità nell’infrastruttura utilizzata da Google per la documentazione destinata agli sviluppatori ha permesso di dimostrare una catena di attacco capace di arrivare all’esecuzione di codice remoto sui server.
A individuarla è stato il ricercatore di sicurezza Simon Koeck, che ha ricostruito il problema attraverso l’analisi del sistema di autenticazione e della gestione delle sessioni. La criticità non dipendeva da una singola impostazione isolata, ma dalla combinazione di scelte progettuali che, insieme, compromettevano l’integrità dei dati ricevuti dal server.
Il caso è particolarmente significativo perché riguarda componenti condivisi da diversi servizi Google. L’azienda ha riconosciuto il valore della ricerca con un premio economico, dopo aver valutato la portata tecnica della segnalazione e il suo impatto potenziale.
Come funzionava la vulnerabilità nei cookie Flask
Durante l’analisi del flusso OAuth di DevSite, Koeck ha esaminato un cookie di sessione generato da Flask, il framework Python utilizzato dall’applicazione. Il contenuto del cookie risultava leggibile e comprendeva informazioni relative al processo di autenticazione, compreso un client_secret associato a OAuth. Il problema più grave riguardava però il riutilizzo di quel valore: la stessa credenziale veniva impiegata anche come chiave per firmare le sessioni.
Questa sovrapposizione indeboliva il meccanismo di verifica. Recuperando il segreto, il ricercatore è riuscito a produrre cookie con firme valide, modificando i dati che il server considerava attendibili. La catena diventava particolarmente pericolosa perché una parte delle informazioni contenute nella sessione era serializzata mediante pickle, un formato Python che può eseguire operazioni durante la deserializzazione.
Il punto critico era proprio il passaggio tra la verifica della sessione e la ricostruzione dell’oggetto. Una volta compromessa la possibilità di falsificare il cookie, il server poteva ricevere un payload costruito appositamente e raggiungere una chiamata a pickle.loads(). Per dimostrare il comportamento senza eseguire comandi distruttivi nell’ambiente di produzione, Koeck ha utilizzato un payload che introduceva un ritardo controllato nella risposta. Le misurazioni hanno confermato che il codice veniva effettivamente eseguito sul server.
Impatto sui servizi Google e correzioni adottate
La vulnerabilità non riguardava esclusivamente la pagina esaminata dal ricercatore. La piattaforma DevSite condivide componenti tra proprietà rivolte agli sviluppatori, tra cui developers.google.com, firebase.google.com e developer.android.com. Secondo la ricostruzione, la chiave recuperata permetteva di produrre sessioni accettate anche da altri domini coinvolti nella stessa infrastruttura.
Google ha riconosciuto una ricompensa di 90.000 dollari per la segnalazione. La correzione è stata completata prima della pubblicazione dell’analisi, secondo la cronologia riportata dal ricercatore. La risposta tecnica descritta nel rapporto comprende la rotazione delle credenziali esposte, l’utilizzo di chiavi di firma indipendenti per le diverse installazioni e la rimozione degli oggetti sensibili dai dati controllabili dal client.
Un ulteriore insegnamento riguarda la scelta dei formati di serializzazione. pickle offre funzionalità potenti, ma non è adatto a elaborare dati potenzialmente manipolabili da soggetti esterni senza adeguate garanzie. Per i sistemi di autenticazione, separare le credenziali, limitare le informazioni nei cookie e trattare con cautela gli input ricevuti dal browser sono decisioni architetturali che incidono direttamente sulla sicurezza complessiva.