CSIRT Toscana

Git: descrizione della vulnerabilità CVE-2024-32465 (BL01/240516/CSIRT-ITA)

Data:
16 Maggio 2024 14:33

Sintesi

Aggiornamenti di sicurezza per Git – noto software open source per il controllo delle versioni distribuito – risolvono alcune vulnerabilità, di cui una con gravità “alta” che interessa le modalità di clonazione tramite archivio “.zip”. dei progetti appartenenti ad altri utenti.

Rischio

Stima d’impatto della vulnerabilità sulla comunità di riferimento: MEDIO/GIALLO (63,46/100)1.

Tipologia

  • Security Restrictions Bypass

Descrizione e potenziali impatti

Aggiornamenti di sicurezza per Git – noto software open source per il controllo delle versioni distribuito – risolvono alcune vulnerabilità, di cui una con gravità “alta” che interessa il sistema di controllo delle versioni dei repository.

Tale sistema prevede un’operazione definita “clonazione” – eseguibile tramite il comando “git clone” – che permette la creazione di una copia locale di un repository esistente al fine di lavorare sul progetto senza influire sul repository remoto.

Il problema degli hook

Nel dettaglio, un progetto Git clonato potrebbe includere non solo i file del progetto, ma anche alcuni script speciali chiamati “hook”. Tali hook sono progettati per essere eseguiti automaticamente in risposta a determinati eventi e sono utili nelle fasi di integrazione continua, nei controlli di qualità e in altre funzioni pratiche durante il processo di sviluppo del codice. Tipicamente gli hook sono utilizzati per automatizzare processi leciti ma, qualora manipolati, possono essere sfruttati per eseguire azioni malevole sui dispositivi target.

Gli sviluppatori di Git scoraggiano l’utilizzo diretto di repository non attendibili; raccomandano altresì la possibilità di clonare i repository di terze parti tramite l’apposito parametro “git clone –no-local”. Tale comando permette di escludere i file locali, al fine di ottenere solo i dati essenziali del progetto.

La vulnerabilità CVE-2024-32465

Tramite la vulnerabilità CVE-2024-32465, di tipo “Security Restrictions Bypass” e con score CVSS v3.x pari a 7.4, sono state evidenziate situazioni in cui la soluzione correlata alla CVE-2024-32004 può essere elusa.

Il caso riguarda il download di archivi “.zip” che contengono al loro interno una copia completa di un progetto. Lavorando direttamente con il contenuto di tale archivio, non verranno attivati i meccanismi di sicurezza integrati in Git che normalmente filtrano o disabilitano gli eventuali hook malevoli presenti nella copia del repository.

L’ultima versione del software corregge tale vulnerabilità garantendo la clonazione di repository contenuti all’interno di file “.zip” più sicura.

Prodotti e versioni affette

Git

  • 2.45.x, versioni precedenti alla 2.45.1
  • 2.44.x, versioni precedenti alla 2.44.1
  • 2.43.x, versioni precedenti alla 2.43.4
  • 2.42.x, versioni precedenti alla 2.42.2
  • 2.41.x, versioni precedenti alla 2.41.1
  • 2.40.x, versioni precedenti alla 2.40.2
  • 2.39.x, versioni precedenti alla 2.39.4

Azioni di mitigazione

Si raccomanda di aggiornare il prodotto alla versione più recente disponibile.

In linea con le dichiarazioni degli sviluppatori di Git, è comunque sconsigliato l’utilizzo di repository non attendibili. In tal senso, si riportano di seguito alcune linee guida utili durante le fasi di clonazione:

  1. Verificare l’origine del repository: evitare di clonare repository da URL sconosciute o non verificate; è raccomandabile utilizzare URL provenienti da piattaforme di hosting affidabili quali GitHub, GitLab o Bitbucket.
  2. Utilizzare l’apposito parametro “git clone –no-local”: la clonazione via git con parametro “–no-local” è consigliata soprattutto quando l’attività di clonazione viene effettuata da fonti non attendibili.

  3. Analizzare il codice prima di utilizzarlo: prima di eseguire o integrare il codice clonato, esaminare il codice sorgente per potenziali problemi di sicurezza o codice malevolo. Utilizzare strumenti di analisi statica del codice (SAST) per rilevare vulnerabilità o errori di codifica comuni.
  4. Controllare le dipendenze: verificare le librerie e le dipendenze esterne utilizzate nel progetto.
  5. Utilizzare un ambiente di test isolato: testare il software in un ambiente isolato, come una macchina virtuale o un container, per evitare di compromettere il sistema operativo principale o i dati sensibili.
  6. Mantenere il software aggiornato: applicare tempestivamente tutte le correzioni di sicurezza e gli aggiornamenti di Git.

Identificatori univoci vulnerabilità

CVE-2024-32465

Riferimenti

https://github.com/git/git/security/advisories/GHSA-vm9j-46j9-qvq4

https://docs.github.com/en/code-security/getting-started/quickstart-for-securing-your-repository

https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository

1La presente stima è effettuata tenendo conto di diversi parametri, tra i quali: CVSS, disponibilità di patch/workaround e PoC, diffusione dei software/dispositivi interessati nella comunità di riferimento.

Il presente articolo è un prodotto originale di csirt.gov.it, riproposto qui a solo scopo di aumentarne la visibilità.