Sono stati pubblicati nuovi aggiornamenti per i sistemi di controllo versione distribuito Git 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 e 2.39.4, che risolvono cinque vulnerabilità. La vulnerabilità più grave (CVE-2024-32002), classificata come critica, permette l'esecuzione di codice malevolo durante la clonazione di un repository controllato dall'attaccante utilizzando il comando 'git clone'.
La vulnerabilità si manifesta solo nei file system che non distinguono tra maiuscole e minuscole e supportano i link simbolici, come quelli utilizzati per impostazione predefinita in Windows e macOS. La sfruttabilità avviene tramite la creazione in un sottomodulo di una directory e di un link simbolico che differiscono solo per la registrazione dei caratteri, il che consente di scrivere file nella directory .git/, anziché nella directory di lavoro del sottomodulo. Una volta ottenuta la capacità di scrittura in .git/, l'attaccante può sovrascrivere le chiamate degli hook tramite .git/hooks e ottenere l'esecuzione di codice arbitrario durante l'operazione di 'git clone.'.
Altre vulnerabilità:
- CVE-2024-32004 — un attaccante in un sistema multiutente può preparare un repository locale appositamente formattato per ottenere l'esecuzione di codice al momento della clonazione. In particolare, l'attaccante può creare un repository locale che appare come un clone parziale, contenente oggetti specifici mancanti. La clonazione di questo repository porterà all'esecuzione di codice con i privilegi dell'utente che esegue l'operazione di clonazione.
- CVE-2024-32465 — la clonazione da archivi zip contenenti un repository git completo, inclusi gli hook nella cartella .git/, comporterà l'esecuzione di questi hook.
- CVE-2024-32020 — la creazione di cloni locali del repository sullo stesso disco in un sistema multiutente consente ad altri utenti di modificare i file per i quali sono utilizzati collegamenti rigidi.
- CVE-2024-32021 — la clonazione di un repository locale con collegamenti simbolici può essere utilizzata per creare collegamenti rigidi a file arbitrari nella cartella objects/.
Oltre a correggere le vulnerabilità nelle nuove versioni, sono state proposte alcune modifiche mirate a migliorare la protezione contro le vulnerabilità che portano all'esecuzione remota di codice e manipolano i collegamenti simbolici durante le operazioni di clonazione. Ad esempio, git ora emette un avviso in presenza di collegamenti simbolici nella directory .git/. I percorsi per i sottomoduli possono ora contenere solo directory reali. In caso di conflitto tra collegamenti simbolici e directory, si trattano le directory. Durante l'esecuzione di "git clone" è stata aggiunta una protezione contro l'esecuzione di hook durante la clonazione e sono stati rafforzati i controlli sul parametro core.hooksPath.
Fonte: opennet.ru
