Un ingegnere della sicurezza ha rivelato una serie di vulnerabilità critiche negli strumenti Git che hanno esposto milioni di sviluppatori al furto di credenziali.
RyotaK, un ingegnere della sicurezza di GMO Flatt Security Inc., stava effettuando una ricerca di bug per il programma GitHub Bug Bounty nell’ottobre 2024 quando ha scoperto delle debolezze in GitHub Desktop, Git Credential Manager, Git LFS, GitHub CLI e GitHub Codespaces, tutte derivanti da una non corretta convalida dell’input e dalla gestione di protocolli basati sul testo.
Il protocollo delle credenziali Git e le sue vulnerabilità
Queste vulnerabilità ruotano attorno al Git Credential Protocol, che scambia le credenziali degli utenti utilizzando un formato chiave-valore con delimitatori di newline (\n).
Mentre Git generalmente vieta le newline e i byte NULL per evitare attacchi di tipo injection, la gestione impropria di altri caratteri di fine riga come i ritorni a capo (\r) ha introdotto delle falle nella sicurezza.
Le vulnerabilità:
- GitHub Desktop (CVE-2025-23040) Un URL di sottomodulo maligno abilmente realizzato e contenente %0d (un ritorno a capo esadecimale) poteva aggirare la logica di parsing di GitHub Desktop, inducendolo a esporre le credenziali dell’utente per github.com a domini controllati dagli aggressori.
- Git Credential Manager (CVE-2024-50338) Simili falle di parsing nello StreamReader di .NET consentivano ai caratteri di ritorno a capo di far passare i dati attraverso le righe, esponendo gli utenti a un potenziale furto di credenziali.
- Git LFS (CVE-2024-53263) Le vulnerabilità di Newline Injection consentivano a repository malintenzionati di modificare i file di configurazione e di aggirare le protezioni di Git, facendo trapelare credenziali sensibili agli aggressori.
- GitHub CLI (CVE-2024-53858) Le falle logiche causavano la perdita di token di accesso da parte di GitHub CLI a domini controllati da aggressori quando si sfruttavano alcune variabili d’ambiente come CODESPACES=true o GITHUB_ENTERPRISE_TOKEN.
- GitHub Codespaces: Lo script di aiuto alle credenziali di Codespaces (gitcredential_github.sh) restituiva indiscriminatamente token sensibili per tutte le operazioni Git, indipendentemente dall’host richiesto.
In risposta, Git ha implementato un meccanismo di difesa completo (CVE-2024-52006), introducendo la configurazione credential.protectProtocol per bloccare gli URL contenenti caratteri di ritorno a capo (\r).
Questa opzione, abilitata per impostazione predefinita, chiude le vulnerabilità in Git e Git LFS. GitHub ha anche aggiornato Codespaces per convalidare le richieste di host e limitare la condivisione delle credenziali a github.com.
Le scoperte di RyotaK evidenziano i pericoli persistenti dei protocolli basati sul testo e della convalida inadeguata. Come ha osservato l’ingegnere, “un piccolo difetto di architettura può portare a un grande problema di sicurezza”.
Gli sviluppatori e i manutentori di piattaforme sono invitati ad adottare strategie di difesa in profondità e a testare rigorosamente le vulnerabilità di parsing degli input.















