Aggiornamento Git con 8 vulnerabilità risolte

Pubblicato versioni correttive del sistema di controllo del codice sorgente distribuito Git 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 e 2.14.62.24.1 XNUMX, che ha risolto le vulnerabilità che consentivano a un utente malintenzionato di riscrivere percorsi arbitrari nel file system, organizzare l'esecuzione di codice remoto o sovrascrivere file nella directory ".git/". La maggior parte dei problemi identificati dai dipendenti
Microsoft Security Response Center, cinque delle otto vulnerabilità sono specifiche della piattaforma Windows.

  • CVE-2019-1348 - comando di streaming "funzionalità export-marks=percorso"permette scrivere etichette in directory arbitrarie, che possono essere utilizzate per sovrascrivere percorsi arbitrari nel file system quando si esegue un'operazione di "importazione rapida git" con dati di input non controllati.
  • CVE-2019-1350 - Escape errato degli argomenti della riga di comando potrebbe condurre all'esecuzione remota del codice dell'utente malintenzionato durante la clonazione ricorsiva utilizzando l'URL ssh://. In particolare, gli argomenti di escape che terminavano con una barra rovesciata (ad esempio, "test \") venivano gestiti in modo errato. In questo caso, quando si inquadra un argomento tra virgolette doppie, l'ultima virgoletta è stata sfuggita, il che ha permesso di organizzare la sostituzione delle opzioni sulla riga di comando.
  • CVE-2019-1349 — durante la clonazione ricorsiva di sottomoduli (“clone —recurse-submodules”) nell'ambiente Windows in determinate condizioni potuto attivare l'uso della stessa directory git due volte (.git, git~1, git~2 e git~N sono riconosciuti come un'unica directory in NTFS, ma questa situazione è stata testata solo per git~1), che potrebbe essere utilizzata per organizzare scrivendo nella directory ".git". Per organizzare l'esecuzione del proprio codice, un utente malintenzionato, ad esempio, può sostituire il proprio script tramite il gestore post-checkout nel file .git/config.
  • CVE-2019-1351 — il gestore dei nomi delle unità letterali nei percorsi Windows durante la traduzione di percorsi come "C:\" è stato progettato solo per sostituire gli identificatori latini a lettera singola, ma non ha preso in considerazione la possibilità di creare unità virtuali assegnate tramite "subst letter:path" . Tali percorsi non venivano trattati come assoluti, ma come percorsi relativi, il che rendeva possibile, durante la clonazione di un repository dannoso, organizzare un record in una directory arbitraria al di fuori dell'albero delle directory di lavoro (ad esempio, quando si utilizzavano numeri o caratteri Unicode nel disco nome - "1:\cosa\il\hex.txt" o "ä:\tschibät.sch").
  • CVE-2019-1352 — quando si lavora sulla piattaforma Windows, l'uso di flussi di dati alternativi in ​​NTFS, creati aggiungendo l'attributo ":stream-name:stream-type" al nome del file, consentito sovrascrivere i file nella directory ".git/" durante la clonazione di un repository dannoso. Ad esempio, il nome ".git::$INDEX_ALLOCATION" in NTFS è stato trattato come un collegamento valido alla directory ".git".
  • CVE-2019-1353 — quando si utilizza Git in un ambiente WSL (sottosistema Windows per Linux) quando si accede alla directory di lavoro non usato protezione contro la manipolazione dei nomi in NTFS (erano possibili attacchi tramite la traduzione dei nomi FAT, ad esempio era possibile accedere a “.git” tramite la directory “git~1”).
  • CVE-2019-1354 -
    opportunità scrive nella directory ".git/" sulla piattaforma Windows durante la clonazione di repository dannosi contenenti file con una barra rovesciata nel nome (ad esempio, "a\b"), che è accettabile su Unix/Linux, ma è accettato come parte di il percorso su Windows.

  • CVE-2019-1387 — un controllo insufficiente dei nomi dei sottomoduli potrebbe essere utilizzato per organizzare attacchi mirati che, se clonati ricorsivamente, potrebbero potenzialmente potrebbe condurre per eseguire il codice dell'attaccante. Git non ha impedito la creazione di una directory di sottomodulo all'interno della directory di un altro sottomodulo, cosa che nella maggior parte dei casi avrebbe solo portato confusione, ma non ha potenzialmente impedito che il contenuto di un altro modulo venisse sovrascritto durante il processo di clonazione ricorsiva (ad esempio, le directory del sottomodulo "hippo" e "hippo/hooks" sono posizionati come " .git/modules/hippo/" e ".git/modules/hippo/hooks/", e la directory degli hook in hippo può essere utilizzata separatamente per ospitare hook attivati.

Si consiglia agli utenti Windows di aggiornare immediatamente la propria versione di Git e di astenersi dal clonare repository non verificati fino all'aggiornamento. Se non è ancora possibile aggiornare urgentemente la versione Git, per ridurre il rischio di attacco, si consiglia di non eseguire “git clone —recurse-submodules” e “git submodule update” con repository non controllati, di non utilizzare “git fast-import” con flussi di input non controllati e di non clonare repository su partizioni basate su NTFS.

Per maggiore sicurezza, le nuove versioni vietano anche l'uso di costrutti della forma "submodule.{name}.update=!command" in .gitmodules. Per le distribuzioni, puoi tenere traccia del rilascio degli aggiornamenti dei pacchetti nelle pagine Debian,Ubuntu, RHEL, SUSE / openSUSE, Fedora, Arco, ALT, FreeBSD.

Fonte: opennet.ru

Aggiungi un commento