Versiebeheersystemen Git, Mercurial en SVN hebben een kwetsbaarheid gedicht waarbij een aanvaller commando's op het systeem van een slachtoffer kon uitvoeren door het een bepaalde ssh-url te laten gebruiken.
Recurity Labs-onderzoeker Joern Schneeweisz beschrijft de kwetsbaarheden met respectievelijk kenmerken CVE-2017-1000117, CVE-2017-1000116 en CVE-2017-9800 op zijn blog. Hij kwam er in eerste instantie in Git LFS achter dat als een ssh-url een hostname bevat die begint met een streepje, dat deze dan onterecht als een optie bij het ssh-commando wordt gezien. Daardoor is het mogelijk om willekeurige commando's uit te voeren in programma's die op het systeem aanwezig zijn, als het slachtoffer overgehaald kan worden de url te gebruiken.
Hij vond deze kwetsbaarheid in mei. Twee maanden later vond hij eenzelfde lek in Git, wat het uitvoeren mogelijk maakte via het git clone-commando. Hierbij stelt hij dat er ook een andere manier is om een commando uit te voeren op het systeem van een slachtoffer. Zo is het mogelijk om een dergelijke url in het gitmodules-bestand van een kwaadaardig project op te nemen, waardoor er een commando uitgevoerd kan worden als een slachtoffer het git clone-commando uitvoert met de optie 'recurse submodules'. Later bleek een soortgelijk lek ook in Subversion en Mercurial te zitten.
Volgens Schneeweisz was Subversion het zwaarst getroffen doordat het mogelijk was een http-url via een redirect te gebruiken om de kwetsbaarheid te misbruiken. Inmiddels zijn de nodige patches uitgebracht. Het is niet meer mogelijk een ssh-hostname met een streepje te beginnen en hetzelfde geldt voor een repository.