Discussione Articolo Problemi di sicurezza critici su Git

Stato
Discussione chiusa ad ulteriori risposte.

0xbro

Super Moderatore
24 Febbraio 2017
4,465
179
3,764
1,825
Ultima modifica:
Sono state recentemente pubblicati i dettagli su due vulnerabilità critiche di git (CVE-2022-41903 e CVE-2022-23521) che consentono l'esecuzione di Codice Remoto in diversi contesti di utilizzo del tool.​

photo-1556075798-4825dfaaf498



Problemi di sicurezza critici su Git - tra cui due possibili Remote Code Execution​




Un recente audit di sicurezza effettuato sul famoso programma Git ha evidenziato diverse vulnerabilità sullo strumento, alcune delle quali dall'elevato livello di criticità.

Evil clone operation (CVE-2022-23521)​

I gitattributes sono un meccanismo che consente di definire alcuni attributi per specifici paths. Questi possono essere definiti aggiungendo un file .gitattributes al repo, un file contenente un insieme di file patterns e i relativi attributi da impostate per ogni path corrispondente al pattern.​

Durante il parsing dei gitattributes, però, possono verificarsi diversi integer overflows per ognugno dei seguenti casi:
  • quando c'è un elevato numero di path patterns
  • quando c'è un elevato numero di attributi per un singolo pattern
  • quando il nomi degli attributi dichiarati sono troppo grandi

Questi tre scenari possono essere sfruttati da un attaccante committando appositamente un file .gitattributes malevolo all'interno di un repo, in modo tale da causare il bug durante l'esecuzione di un comando git pull o git clone, con lo scopo finale di leggere e scrivere valori arbitrari nella memoria Heap e, potenzialmente, causare esecuzione di codice arbitrario.​

Pretty but malicious (CVE-2022-41903)​

La seconda criticità individuata permette l'esecuzione di codice remoto durante le operazioni di archiviazione comunemente eseguite da applicazioni come GitHub e GitLab.

I comandi git log e git archive consentono di visualizzare i vari commit con una formattazione "pretty". Processando i padding operators, però, può verificarsi un integer overflow nel parser del formato nel caso in cui venga utilizzato uno specifico pattern di identificatori.

Un ipotetico attaccante potrebbe causare il bug tramite un'iniezione arbitraria di argomenti al comando git log, anche se il vettore di attacco più interessante è l'operazione di archiviazione compita da git. L'attaccante potrebbe includere un'istruzione export-subst nel file .gitattributes all'interno di un repository. Ciò farebbe scattare il bug durante l'esecuzione del comando git archive, senza però necessitare di passare nessun argomento arbitrario.​

Risorse esterne, fix e workaround relativi all'argomento​

Di seguito trovate maggiori dettagli in merito alle due vulnerabilità sopra-citate, alle relative fix e ai possibili workaround per chi non può aggiornare git all'ultime versione disponibile:​



Made with ❤ for Inforge

 
  • Mi piace
Reazioni: hackynonpointer
Stato
Discussione chiusa ad ulteriori risposte.