Er is een kritiek beveiligingsprobleem onthuld in Gogs, een populaire open-source zelfgehoste Git-service, waarmee een geauthenticeerde gebruiker onder bepaalde omstandigheden willekeurige code kan uitvoeren.
Het beveiligingslek wordt volgens Rapid7 beoordeeld met een 9,4 op het CVSS-scoresysteem. Het heeft geen CVE-identificatie.
“Door het beveiligingslek kan elke geauthenticeerde gebruiker Remote Code Execution (RCE) op de server bewerkstelligen door een pull-verzoek te maken met een kwaadaardige branch-naam die de vlag –exec in git rebase injecteert tijdens de merge-operatie ‘Rebase before merge'”, aldus beveiligingsonderzoeker Jonah Burgess.
Rebasen is een Git-actie die wordt gebruikt om een reeks commits van een feature branch te nemen en deze opnieuw af te spelen bovenop een andere basisbranch om een lineaire projectgeschiedenis te creëren. Terwijl “git rebase” hetzelfde probleem oplost als “git merge” – dwz het integreren van veranderingen van de ene branch in de andere – herschrijft eerstgenoemde de projectgeschiedenis door nieuwe commits aan te maken voor elke commit in de originele branch.
De “git rebase” actie accepteert ook als argument een shell commando via een –exec vlag die wordt uitgevoerd nadat elke commit opnieuw is afgespeeld. Een opmerkelijk aspect van de kwetsbaarheid is dat er geen beheerdersrechten of interactie met andere gebruikers voor nodig zijn. Om de aanval uit te voeren hoeft een niet-geverifieerde bedreigingsacteur alleen maar een account en een opslagplaats aan te maken op een standaard geconfigureerd exemplaar.
“Elke geregistreerde gebruiker die een repository aanmaakt, is automatisch de eigenaar ervan”, aldus Burgess. “Van daaruit is het mogelijk maken van rebase-samenvoeging een enkele schakelaar in de instellingen, en kan de hele exploitketen worden bediend zonder interactie van een andere gebruiker.”
In een alternatief scenario kan een gebruiker met schrijftoegang tot een repository waar rebase al is ingeschakeld, de fout rechtstreeks misbruiken om code-uitvoering te verkrijgen. Op Gogs-instanties waarbij het maken van repository’s beperkt is, moet een aanvaller schrijftoegang hebben tot elke repository waarvoor het samenvoegen van rebases is ingeschakeld.
Op het moment van schrijven is de kwetsbaarheid nog steeds niet verholpen, ondanks dat deze op 17 maart 2026 aan de beheerder is gerapporteerd. Succesvolle exploitatie van de bug zou een aanvaller de mogelijkheid kunnen geven om de server te doorbreken, toegang te krijgen tot elke repository op de instance, inloggegevens te dumpen, naar andere netwerktoegankelijke systemen te gaan en te knoeien met de code van een gehoste repository.
Bovendien kan dit resulteren in een datalek tussen verschillende tenants, waardoor de aanvaller de privérepository’s van andere gebruikers kan lezen die op dezelfde gedeelde server worden gehost. Volgens Rapid7 heeft de fout gevolgen voor alle ondersteunde platforms, zoals Windows, Linux en macOS.
Er zijn naar schatting 1.141 internetgerichte Gogs-instanties. Verwacht wordt echter dat het werkelijke cijfer hoger zal zijn, aangezien de meeste implementaties achter VPN’s of interne netwerken plaatsvinden.
Als er geen patch is, worden de volgende aanbevelingen uiteengezet:
- Beperk gebruikersregistratie (DISABLE_REGISTRATION = true in app.ini) om te voorkomen dat niet-vertrouwde gebruikers accounts aanmaken
- Beperk het maken van opslagplaatsen (MAX_CREATION_LIMIT = 0 in app.ini) om te voorkomen dat gebruikers hun eigen opslagplaatsen maken
- Controleer de rebase-samenvoeginstellingen
Rapid7 heeft ook een Metasploit-module gemaakt die de volledige exploitatieketen tegen zowel Linux- als Windows-doelen automatiseert. De module ondersteunt twee modi: een standaardmodus waarin een tijdelijke repository wordt aangemaakt onder het account van de aanvaller, de exploit wordt uitgevoerd en de repository wordt verwijderd. De tweede benadering richt zich op een opslagplaats waartoe de aanvaller al schrijf- en samenvoegtoegang heeft.
“Wanneer de aanvaller zijn eigen repository aanmaakt en verwijdert, is het enige spoor een HTTP 500 in de serverlogboeken”, aldus de cybersecurity-expert. “Bij het exploiteren van een bestaande repository blijven er extra artefacten achter.”