VMTech
Razgovarajmo

GitLab imejl token omogućava upis koda i pokretanje CI poslova

GitLab imejl token omogućava upis koda i pokretanje CI poslova

Aikido Security je utvrdio da procurila GitLab adresa za slanje radnih stavki imejlom može omogućiti neovlašćenom licu da pošalje zakrpu, upiše je kao commit u ime vlasnika naloga i pokrene CI/CD poslove. Rizik obuhvata svaku granu na koju nalog sme da upisuje, uključujući main, a naročito je značajan za korisnike sa Maintainer ovlašćenjima.

GitLab ovu adresu prikazuje uz opciju „Email work item to this project“. Ona sadrži token vezan za korisnički nalog. Iako adresa na prvi pogled deluje vezano za konkretan projekat, Aikido je utvrdio da adrese istog korisnika za različite projekte dele isti token i da on važi za projekte kojima taj nalog može da pristupi, javne i privatne.

Kako se imejl pretvara u izmenu repozitorijuma

GitLab ne proverava ko je poslao poruku na ovu adresu, već je obrađuje kao radnju vlasnika tokena. Imejl funkcija za merge request može se aktivirati promenom nastavka adrese sa -issue na -merge-request. Napadač zatim u naslov poruke unosi ciljnu granu, prilaže zakrpu i šalje poruku.

GitLab primenjuje priloženu zakrpu na navedenu granu, a granu može i da napravi ako ne postoji. Commit se beleži kao da ga je načinio vlasnik tokena. Sam merge request ne može biti usmeren na kopiju projekta koju kontroliše napadač, zbog čega se izvršni sadržaj isporučuje kroz priloženu zakrpu.

Ako zakrpa menja datoteku .gitlab-ci.yml i ovlašćenja naloga to dopuštaju, GitLab pokreće definisani CI/CD posao sa identitetom tog naloga. Obim posledica zato nije isti za sve korisnike: token Guest naloga ima ograničenu vrednost, dok token Maintainer naloga može obuhvatiti zaštićene grane i CI/CD tajne.

IP ograničenja i 2FA ne štite tok dolazne pošte

Za ciljanje projekta nisu dovoljni samo token i adresa: GitLab određuje projekat prema putanji i numeričkom ID-u. Kod javnih projekata su oba podatka dostupna, dok je za privatni potreban dodatni podatak o njegovom nazivu ili putanji. Projektni ID-jevi su pritom laki za nagađanje.

Dolazna imejl pošta je izuzeta od IP ograničenja. Aikido je testirao privatni projekat ograničen na jednu IP adresu: pregledanje kroz pregledač i git clone bili su blokirani, ali je GitLab prihvatio imejl za merge request i commit je završio na grani main. Isti tok funkcioniše bez dvofaktorske autentifikacije, čak i kada je ona obavezna na instanci.

Koraci za smanjenje izloženosti

Svaki GitLab.com nalog poseduje ovakav token, a postoji i na samostalno upravljanim GitLab instancama na kojima je uključen dolazni imejl. GitLab Dedicated, prema ograničenju funkcije koje navodi GitLab, ne deluje pogođeno. Na samostalno upravljanoj instanci administrator može isključiti dolazni imejl za celu instancu, ali pojedinačni korisnik nema prekidač kojim bi isključio kreiranje issue-a ili merge requesta putem imejla.

Korisnici mogu resetovati incoming email token na stranici ličnih pristupnih tokena. Reset istovremeno menja sve projektne adrese, pa postojeće objavljene ili korišćene adrese prestaju da rade. Aikido je pronašao oko desetak aktivnih adresa u README datotekama, vodičima za doprinos i stranicama podrške. Praktičan zaključak je da timovi treba da pregledaju takve javne materijale, resetuju sumnjivo izložene tokene i procene da li je dolazni imejl potreban na njihovoj GitLab instanci.

#gitlab#devsecops#supplychain#cicd
Otvorena analitika
Na sajtu 0 pregleda
min čitanja 4 23.09.2026
Instagram

GitLab imejl token omogućava upis koda i pokretanje CI poslova

Otvorite objavu na Instagramu ↗