Git-update met oplossing voor 8 kwetsbaarheden

Gepubliceerd correctieve versies van het gedistribueerde versiebeheersysteem 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 en 2.14.6, waarin kwetsbaarheden zijn verholpen die een aanvaller in staat stelden om willekeurige paden in het bestandssysteem te herschrijven, op afstand code uit te voeren of bestanden in de map '.git/' te herschrijven. De meeste problemen zijn ontdekt door medewerkers
Microsoft Security Response Center, vijf van de acht kwetsbaarheden zijn specifiek voor het Windows-platform.

  • CVE-2019-1348 — streamingopdracht 'feature export-marks=path'toe schrijft labels naar willekeurige mappen, die gebruikt kunnen worden om willekeurige paden in het FS te herschrijven bij het uitvoeren van de 'git fast-import' operatie met niet-gevalideerde invoer.
  • CVE-2019-1350 — onjuiste ontsnapping van commando-argumenten kan leiden tot het op afstand uitvoeren van code door de aanvaller bij recursief klonen met behulp van het ssh://-url. In het bijzonder werd de ontsnapping van argumenten die eindigen op een backslash (bijvoorbeeld 'test \') onjuist behandeld. In dit geval, wanneer het argument in dubbele aanhalingstekens wordt omgeven, was de laatste aanhalingstekens ontsnapt, waardoor het mogelijk werd om eigen opties in de opdrachtregel in te voegen.
  • CVE-2019-1349 — bij recursief klonen van submodules ('clone --recurse-submodules') in een Windows-omgeving onder bepaalde omstandigheden was het mogelijk om het gebruik van één git-map tweemaal te initiëren (.git, git~1, git~2 en git~N wordt in NTFS als één map herkend, maar deze situatie werd alleen voor git~1 gecontroleerd), wat gebruikt kon worden om te schrijven in de map '.git'. Om het uitvoeren van zijn code mogelijk te maken, kan een aanvaller bijvoorbeeld zijn script via de post-checkout handler in het .git/config-bestand invoegen.
  • CVE-2019-1351 — de handler voor boekletter schijf namen in Windows paden bij het vertalen van paden zoals «C:\» was alleen ontworpen voor het vervangen van één-letterige Latijnse identificatoren, maar hield geen rekening met de mogelijkheid om virtuele schijven aan te maken die toegewezen worden via «subst letter:punt». Dergelijke paden werden niet als absolute paden behandeld, maar als relatieve paden, wat het mogelijk maakte om bij het klonen van een kwaadaardige repository een schrijfactie uit te voeren in een willekeurige map buiten de werkomgeving (bijvoorbeeld bij het gebruik van cijfers of unicode-symbolen in de schijfnaam — «1:\what\the\hex.txt» of «ä:\tschibät.sch»).
  • CVE-2019-1352 — bij het werken op het Windows-platform maakte het gebruik van alternatieve gegevensstromen in NTFS, die werden gecreëerd door de eigenschap «:stream-name:stream-type» aan de bestandsnaam toe te voegen, het mogelijk maakte om bestanden in de map «.git/» te overschrijven bij het klonen van een kwaadaardige repository. Bijvoorbeeld, de naam «.git::$INDEX_ALLOCATION» in NTFS werd behandeld als een geldige link naar de map «.git».
  • CVE-2019-1353 — bij het gebruik van Git in een WSL (Windows Subsystem for Linux) omgeving, bij toegang tot de werkdirectory werd er geen bescherming tegen naammanipulatie in NTFS toegepast (aanvallen via naamvertaling van FAT waren mogelijk, bijvoorbeeld, de toegang tot «.git» kon via de map «git~1» worden verkregen).
  • CVE-2019-1354 —
    de mogelijkheid schrijfacties in de map «.git/» op het Windows-platform bij het klonen van kwaadaardige repositories, die bestanden bevatten met een omgekeerde schuine streep in de naam (bijvoorbeeld «a\b»), wat toegestaan is in Unix/Linux, maar wordt gezien als een deel van het pad in Windows.
  • CVE-2019-1387 — onvoldoende controle van submodule namen kon worden gebruikt voor doelgerichte aanvallen, die bij rekursief klonen potentieel kunnen leiden tot de uitvoering van de code van de aanvaller. Git stond niet toe dat een submodulemap werd aangemaakt in de map van een andere submodule, wat in de meeste gevallen slechts kan leiden tot verwarring, maar potentieel niet uitsluit dat de inhoud van een andere module wordt overschreven tijdens het rekursief klonen (bijvoorbeeld, de submodulemappen «hippo» en «hippo/hooks» worden geplaatst als «.git/modules/hippo/» en «.git/modules/hippo/hooks/», terwijl de map hooks in hippo afzonderlijk kan worden gebruikt voor het plaatsen van uitvoerbare handlers.

Windows-gebruikers wordt dringend aangeraden om hun versie van Git bij te werken. Totdat de update is uitgevoerd, wordt aangeraden om niet te klonen van onbetrouwbare repositories. Als het niet mogelijk is om Git onmiddellijk bij te werken, wordt het risico op aanvallen verminderd door "git clone --recurse-submodules" en "git submodule update" niet te gebruiken met onbetrouwbare repositories, niet "git fast-import" te gebruiken met onbetrouwbare invoerstromen en geen repositories in NTFS-geheugenonderdelen te klonen.

Voor extra bescherming is in de nieuwe versies ook het gebruik van constructies in .gitmodules in de vorm van "submodule.{name}.update=!command" verboden. Voor distributies kan men de updates van pakketten volgen op de pagina's. Debian,Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, ALT, FreeBSD.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster