Correcties zijn gepubliceerd voor de gedistribueerde versiebeheersysteem Git 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 en 2.39.4, waarin vijf kwetsbaarheden zijn verholpen. De meest ernstige kwetsbaarheid (CVE-2024-32002), die een kritiek gevaar heeft, stelt aanvallers in staat om kwaadaardige code uit te voeren tijdens het klonen van een repository via de 'git clone' opdracht, die onder controle staat van de aanvaller.
De kwetsbaarheid manifesteert zich alleen in bestandssystemen die geen onderscheid maken tussen hoofdletters en kleine letters en die symbolische links ondersteunen, zoals die standaard worden gebruikt in Windows en macOS. De exploitatie gebeurt door het creƫren van een submodule-directory en een symbolische link, die zich alleen in hoofdlettergebruik onderscheiden, waardoor het mogelijk is om bestanden in de .git/ directory te schrijven in plaats van in de werkdirectory van de submodule. Door schrijfaccess naar .git/ kan een aanvaller hook-aanroepen via .git/hooks vervangen en willekeurige code uitvoeren tijdens de 'git clone' operatie.
Andere kwetsbaarheden:
- CVE-2024-32004 - in een multi-user systeem kan een aanvaller een speciaal gevormde lokale repository voorbereiden en code laten uitvoeren bij het klonen. Dit kan vooral gebeuren wanneer de aanvaller een lokale repository creƫert die eruit ziet als een gedeeltelijke kloon, waarin een bepaald object ontbreekt. Het klonen van deze repository zal code uitvoeren met de rechten van de gebruiker die de kloonopdracht uitvoert.
- CVE-2024-32465 - klonen vanuit zip-archieven die een volledige git-repository bevatten, inclusief hooks in de .git/ directory, zal leiden tot de uitvoering van deze hooks.
- CVE-2024-32020 - het maken van lokale klonen van een repository op dezelfde schijf in een multi-user systeem stelt andere gebruikers in staat om bestanden te wijzigen waarvoor harde links zijn gebruikt.
- CVE-2024-32021 - het klonen van een lokale repository met symbolische links kan worden gebruikt om harde links naar willekeurige bestanden in de objects/ directory te creƫren.
Naast het oplossen van kwetsbaarheden in nieuwe versies, zijn er ook verschillende wijzigingen voorgesteld om de bescherming tegen kwetsbaarheden die leiden tot remote code execution en het manipuleren van symbolische links tijdens het klonen te verbeteren. Bijvoorbeeld, git geeft nu een waarschuwing wanneer er symbolische links in de .git/ directory aanwezig zijn. Paden naar submodules mogen voortaan alleen echte directories bevatten. Bij het kruisen van symbolische links en directories worden directories verwerkt. Bij het uitvoeren van "git clone" is er bescherming toegevoegd tegen het uitvoeren van hooks tijdens het klonen en zijn de controles op de parameter core.hooksPath versterkt.
Bron: opennet.ru
