GitHub non cancella davvero i dati: cos'è la vulnerabilità CFOR

Sembra che GitHub non elimini davvero i repository cancellati, i cui dati rimangono accessibili sfruttando una vulnerabilità.

Avatar di Marco Pedrani

a cura di Marco Pedrani

Managing Editor

Una recente ricerca condotta da Truffle Security ha rivelato una potenziale vulnerabilità di sicurezza su GitHub, la popolare piattaforma di hosting per progetti software. Secondo i ricercatori, i dati provenienti da repository cancellati o da copie (fork) eliminate non vengono necessariamente rimossi in modo definitivo dal sistema.

Joe Leon, ricercatore di sicurezza di Truffle Security, ha definito questa vulnerabilità come "Cross Fork Object Reference" (CFOR). Si verifica quando un fork di un repository riesce ad accedere a dati sensibili provenienti da un altro fork, inclusi quelli di repository privati o eliminati.

Come funziona la vulnerabilità CFOR

I ricercatori hanno dimostrato che è possibile creare un fork di un repository, inserirvi dei dati, eliminare il fork e poi accedere ai dati del commit apparentemente cancellato attraverso il repository originale. Inoltre, hanno evidenziato come i dati non sincronizzati con un fork rimangano accessibili anche dopo l'eliminazione del repository originale.

Questa situazione si è concretizzata la scorsa settimana, quando è stata segnalata una vulnerabilità critica a una grande azienda tecnologica. Una chiave privata di un account GitHub di un dipendente, con ampio accesso all'organizzazione, era stata inavvertitamente resa pubblica in un repository. Nonostante la rapida eliminazione del repository, i dati sensibili rimanevano accessibili attraverso un fork.

La risposta di GitHub

Nonostante le preoccupazioni sollevate, GitHub non considera CFOR una vulnerabilità legittima. In risposta alla segnalazione, la piattaforma di proprietà di Microsoft ha dichiarato che si tratta di una "decisione di design intenzionale" e che il sistema funziona come previsto, rimandando alla documentazione ufficiale.

Dylan Ayrey, co-fondatore e CEO di Truffle Security, ha spiegato che il problema è legato ai cosiddetti "dangling commit". Si tratta di commit Git che non sono più collegati direttamente all'albero principale del codice, ma che rimangono comunque presenti nel database degli oggetti del repository.

Mentre la gestione dei dangling commit varia tra le diverse piattaforme Git, GitHub permette di accedervi attraverso i fork, anche se il repository originale è stato eliminato. Questo comportamento bi-direzionale consente di scaricare i dangling commit sia dal repository genitore che dai suoi fork.

Rischi e implicazioni per la sicurezza

La possibilità di accedere a dati presumibilmente eliminati rappresenta un potenziale rischio per la sicurezza. I ricercatori di Truffle Security hanno trovato 40 chiavi API valide provenienti da fork eliminati, analizzando solo tre repository pubblici ampiamente forkati di grandi aziende AI.

Ayrey ha sottolineato che questa funzionalità potrebbe essere sfruttata per indagini forensi sulle attività delle aziende, permettendo di recuperare informazioni che si volevano rimuovere, come chiavi di accesso, dataset di machine learning o potenziali backdoor.

Possibili soluzioni e raccomandazioni

Truffle Security suggerisce che GitHub dovrebbe riconsiderare la sua posizione, poiché l'utente medio si aspetta una chiara distinzione tra repository pubblici e privati in termini di sicurezza dei dati. Inoltre, c'è l'aspettativa che l'atto di cancellazione rimuova effettivamente i dati dei commit, cosa che non sempre avviene.

Ayrey propone due possibili soluzioni:

  1. Separare il pool di fork, impedendo che i commit di un fork siano accessibili attraverso un altro.
  2. Implementare una nuova funzionalità che consenta di eliminare permanentemente i commit, invece di lasciarli come dangling.

GitHub, da parte sua, mantiene la posizione e sottolinea che questo comportamento è documentato e fa parte del funzionamento previsto delle reti di fork. La piattaforma invita gli utenti a consultare la documentazione ufficiale per comprendere meglio come l'eliminazione o il cambio di visibilità influenzino i fork dei repository.

Leggi altri articoli