Sommario
Un’indagine condotta da RyotaK, esperto di sicurezza presso GMO Flatt Security, ha rivelato una serie di vulnerabilità nei progetti Git, che mettono a rischio le credenziali degli utenti. Questo studio, parte del programma di bug bounty di GitHub, ha evidenziato falle nei meccanismi di gestione delle credenziali in strumenti come GitHub Desktop, Git LFS e Git Credential Manager.
La gestione delle credenziali Git e le sue vulnerabilità
La gestione delle credenziali in Git si basa sul protocollo Git Credential Protocol, che permette di memorizzare e recuperare credenziali tramite helper specifici come git-credential-store
o git-credential-osxkeychain
. Tuttavia, errori nella gestione dei messaggi possono portare a fughe di dati.
Un esempio emblematico riguarda GitHub Desktop, che utilizza il modulo trampoline
per gestire le credenziali. La vulnerabilità (CVE-2025-23040) sfrutta un’errata implementazione del parsing multilinea dei messaggi, permettendo ad attori malevoli di far trapelare credenziali GitHub tramite URL opportunamente manipolati.
Vulnerabilità in Git Credential Manager e Git LFS
Anche il Git Credential Manager, un helper multipiattaforma, soffre di un problema simile (CVE-2024-50338), causato dall’uso errato della classe StreamReader
di .NET, che interpreta i terminatori di riga in modo incoerente con il protocollo Git.
Parallelamente, Git LFS, utilizzato per gestire file di grandi dimensioni, permette l’iniezione di caratteri newline attraverso la configurazione .lfsconfig
. Questo exploit può essere utilizzato per inviare credenziali valide a domini controllati da attaccanti.
Mitigazioni e difese
Per affrontare queste vulnerabilità, Git ha introdotto una nuova configurazione di protezione, credential.protectProtocol
, che di default blocca URL con caratteri di ritorno a capo (\r
). Anche Git LFS ha implementato controlli simili per evitare l’abuso del protocollo.
Gli sviluppatori sono inoltre invitati a configurare gli helper di credenziali su base host-specifica, limitando la possibilità di fughe accidentali di credenziali.
Questa serie di vulnerabilità evidenzia quanto sia fondamentale una gestione accurata dei protocolli testuali, soprattutto in strumenti utilizzati su larga scala. Il lavoro svolto dal team di ricerca ha spinto la comunità Git a migliorare la sicurezza del proprio ecosistema, rafforzando le difese contro attacchi sempre più sofisticati.