Er zijn vier ongepatchte beveiligingslekken, waaronder drie kritieke, ontdekt in de open-source, zelf gehoste Git-service van Gogs. Hiermee kan een geauthenticeerde aanvaller kwetsbare instanties hacken, broncode stelen of wissen en zelfs achterdeurtjes plaatsen.
Volgens SonarSource-onderzoekers Thomas Chauchefoin en Paul Gerste worden de kwetsbaarheden hieronder vermeld:
- CVE-2024-39930 (CVSS-score: 9,9) – Argumentinjectie in de ingebouwde SSH-server
- CVE-2024-39931 (CVSS-score: 9,9) – Verwijderen van interne bestanden
- CVE-2024-39932 (CVSS-score: 9,9) – Argumentinjectie tijdens wijzigingsvoorvertoning
- CVE-2024-39933 (CVSS-score: 7,7) – Argumentinjectie bij het taggen van nieuwe releases
Als de eerste drie tekortkomingen succesvol worden uitgebuit, kan een aanvaller willekeurige opdrachten uitvoeren op de Gogs-server, terwijl het vierde gebrek aanvallers in staat stelt willekeurige bestanden te lezen, zoals broncode en configuratiegeheimen.
Met andere woorden, door misbruik te maken van de problemen kan een kwaadwillende actor de broncode van het exemplaar lezen, code wijzigen, alle code verwijderen, interne hosts aanvallen die bereikbaar zijn vanaf de Gogs-server, zich voordoen als andere gebruikers en meer rechten verkrijgen.
Dat gezegd hebbende, vereisen alle vier de kwetsbaarheden dat de aanvaller wordt geauthenticeerd. Bovendien vereist het activeren van CVE-2024-39930 dat de ingebouwde SSH-server is ingeschakeld, de versie van de env-binary wordt gebruikt en de dreigingsactor in het bezit is van een geldige SSH-privésleutel.
“Als de Gogs-instantie registratie heeft ingeschakeld, kan de aanvaller eenvoudig een account aanmaken en zijn SSH-sleutel registreren”, aldus de onderzoekers. “Anders zouden ze een ander account moeten compromitteren of de SSH-privésleutel van een gebruiker moeten stelen.”
Gogs-instanties die op Windows draaien, zijn niet exploiteerbaar, net als de Docker-image. De instanties die op Debian en Ubuntu draaien, zijn echter kwetsbaar omdat de env-binary de optie “–split-string” ondersteunt.

Volgens gegevens van Shodan zijn er ongeveer 7.300 Gogs-instanties openbaar toegankelijk via internet, waarvan bijna 60% zich in China bevindt, gevolgd door de VS, Duitsland, Rusland en Hong Kong.
Het is momenteel niet duidelijk hoeveel van deze blootgestelde servers kwetsbaar zijn voor de eerder genoemde gebreken. SonarSource zei dat het geen zicht heeft op de vraag of deze problemen in het wild worden uitgebuit.
Het Zwitserse cybersecuritybedrijf wees er ook op dat de projectbeheerders “geen oplossingen hebben doorgevoerd en niet meer met elkaar hebben gecommuniceerd” nadat ze het eerste rapport op 28 april 2023 hadden geaccepteerd.
Bij gebrek aan een update wordt gebruikers aangeraden de ingebouwde SSH-server uit te schakelen, gebruikersregistratie uit te schakelen om massaal misbruik te voorkomen en te overwegen over te stappen op Gitea. SonarSource heeft ook een patch uitgebracht die gebruikers kunnen toepassen, maar merkte op dat deze niet uitgebreid is getest.
De onthulling volgt nadat cloudbeveiligingsbedrijf Aqua ontdekte dat gevoelige informatie, zoals toegangstokens en wachtwoorden, nadat deze hard gecodeerd waren, permanent blootgesteld konden blijven, zelfs nadat ze uit Git-gebaseerde broncodebeheersystemen (SCM) waren verwijderd.
Het probleem wordt ook wel ‘phantom secrets’ genoemd en is dat ze niet ontdekt kunnen worden met een van de conventionele scanmethoden. De meeste daarvan zoeken naar geheimen met behulp van de opdracht ‘git clone’. Bepaalde geheimen zijn bovendien alleen toegankelijk via ‘git clone –mirror’ of gecachte weergaven van SCM-platforms. Dit benadrukt de blinde vlekken die dergelijke scantools mogelijk over het hoofd zien.
“Commits blijven toegankelijk via ‘cache views’ op de SCM,” aldus beveiligingsonderzoekers Yakir Kadkoda en Ilay Goldman. “In essentie slaat de SCM de commit-inhoud voor altijd op.”
“Dit betekent dat zelfs als een geheim met commit wordt verwijderd uit zowel de gekloonde als gespiegelde versies van uw repository, het nog steeds toegankelijk is als iemand de commit-hash kent. Ze kunnen de commit-inhoud ophalen via de GUI van het SCM-platform en toegang krijgen tot het gelekte geheim.”