CVE-2025-48384 è una vulnerabilità ad alta gravità nel client Git (su macOS e Linux) divulgata l’8 luglio 2025.
Si manifesta quando si utilizza git clone --recursive su un repository con un file .gitmodules manipolato contenente percorsi che terminano con un carattere di ritorno a capo (CR), il che può portare alla scrittura arbitraria di file e potenzialmente all’esecuzione di codice da remoto (RCE). Questo rappresenta un rischio significativo per la supply chain di sviluppatori e sistemi di automazione.
| Data | 2025-08-28 09:44:54 |
| Informazioni | Fix Disponibile |
Riassunto tecnico
Il parser della configurazione di Git rimuove i CRLF finali durante la lettura dei valori di configurazione, ma non racchiude i valori quando li scrive, causando discrepanze. Se un percorso di submodule termina con un carattere CR, Git può inizializzare il modulo in una posizione non intenzionata. In presenza di un symlink verso la directory dei hooks del submodule e un hook post-checkout eseguibile, la clonazione del repository può attivare l’hook—portando all’esecuzione di codice.
Le versioni della Git CLI precedenti ai rilasci corretti—v2.43.7, v2.44.4, v2.45.4, v2.46.4, v2.47.3, v2.48.2, v2.49.1, e v2.50.1—sono vulnerabili. È importante notare che i sistemi Windows non sono interessati.
Inoltre, sono disponibili pubblicamente exploit di tipo proof-of-concept (PoC), aumentando il rischio concreto.
Raccomandazioni
-
Aggiornare immediatamente la Git CLI
Assicurarsi che tutti i client Git su macOS e Linux siano aggiornati a una delle versioni corrette:
v2.43.7, v2.44.4, v2.45.4, v2.46.4, v2.47.3, v2.48.2, v2.49.1 o v2.50.1 (o successive). -
Evitare la clonazione ricorsiva da repository non attendibili
Evitare l’uso digit clone --recursiveper repository provenienti da fonti non verificate—soprattutto su workstation di sviluppo o pipeline CI/CD. -
Utilizzare versioni patchate di Git negli ambienti di automazione
In ambienti come GitLab Runner o strumenti CI, assicurarsi che il client Git usato nelle immagini base sia aggiornato; evitare l’uso di versioni vulnerabili. -
Verificare la presenza di versioni vulnerabili
Nei sistemi interessati, eseguiregit --versionper verificare se la versione installata è tra quelle sicure. Su macOS, tenere presente che strumenti come Homebrew possono installare una versione di Git aggiuntiva senza sostituire quella di sistema—aggiornare il proprio PATH di conseguenza. -
Monitorare e informare gli sviluppatori
Sensibilizzare i team sui rischi legati ai submodule malevoli e assicurarsi che gli ambienti sensibili limitino le operazioni a fonti affidabili solamente.