Značajna ranjivost u GitHubovim CodeQL akcijama mogla je dozvoliti napadačima da izvrše maliciozni kod u stotinama hiljada skladišta.
Ranjivost, dodijeljena CVE-2025-24362, potiče od javno izloženog GitHub tokena u artefaktima toka posla koji su stvorili mali, ali iskoristivi prozor mogućnosti.
Ranjivost je otkrivena u januaru 2025. od strane istraživača sigurnosti iz Praetoriana koji je otkrio GitHub token sa opsežnim privilegijama izloženim u artefaktima za otklanjanje grešaka u github/codeql-action repozitorijumu.
Pregled ranjivosti GitHub CodeQL
Iako važi samo 1,022 sekunde, istraživač je pokazao da se ovaj uski vremenski okvir može iskoristiti kroz uslove trke.
Koristeći prilagođeni alat pod nazivom “artifact_racer.py”, istraživač je dokazao da unutar ovog kratkog prozora napadač može preuzeti artefakt, izdvojiti token i izvršiti operacije skladišta uključujući kreiranje grana, guranje datoteka i, što je najvažnije, kreiranje oznaka:
„Ako je napadač uklonio, a zatim dodao v3 oznaku svom malicioznom urezivanju, svako pojedinačno skladište koje koristi podrazumijevani CodeQL radni tok izvršilo bi svoj maliciozni kod“, objasnio je istraživač u svom izveštaju .
Implikacije su bile dalekosežne zbog širokog usvajanja CodeQL-a.
Kada korisnici omoguće CodeQL u svojim postavkama skladišta, GitHub kreira radni tok koji izvršava radnje iz github/codeql-action spremišta na koje upućuju određene oznake. Pošto ove oznake nisu bile nepromijenjive, napadač ih je mogao zamijeniti referencama na maliciozni kod.
Kompromitovani token je imao značajne privilegije, uključujući “Sadržaj: pisanje”, “Radnje: pisanje” i “Paketi: pisanje”, omogućavajući opsežnu manipulaciju skladištem.
Kratak životni vijek tokena pokazao se nedovoljnim kao sigurnosna barijera. Ovaj vektor napada predstavio je četiri primarna scenarija uticaja:
- Eksfiltracija izvornog koda iz privatnih skladišta koristeći CodeQL.
- Krađa kredencijala pohranjenih u GitHub Actions tajnama.
- Izvršenje koda na internoj infrastrukturi koja pokreće CodeQL tokove posla.
- Kompromitacija bilo kakvog toka posla koristeći GitHub Actions Cache unutar skladišta koja koriste CodeQL.
Posebno je zabrinjavajući bio potencijal za “GitHub Actions Cache Poisoning ” putem alata poput Cacheracta, koji bi mogli održati postojanost čak i nakon što je početna ranjivost zakrpljena.
Maliciozni softver bi predvidio unose u keš memoriju, prepisao ih malicioznim radnjama i dobio mogućnosti izvršenja unutar radnih tokova koristeći predmemoriju akcija. Repozitorijumi visokog profila identifikovan kao potencijalno ranjivi uključuju Homebrew, Angular i Grafana.
U roku od tri sata od podnošenja izvještaja 22. januara 2025., GitHub je potvrdio ranjivost, onemogućio problematičan tok posla i poslao zahtjev za povlačenjem kako bi spriječio otpremanje artefakata za otklanjanje grešaka.
Dva dana kasnije, dodijelili su CVE-2025-24362 i objavili savjet u kojem se navodi da nisu pronašli dokaze o stvarnoj eksploataciji.
Ranjivost je ispravljena u CodeQL Action verziji 3.28.3. Stručnjaci za sigurnost preporučuju nekoliko mjera opreza za korisnike GitHub Actions:
- Prenesite samo određene datoteke kao artefakte toka posla.
- Izbjegavajte učitavanje artefakata koji sadrže varijable okruženja.
- Ograničite GITHUB_TOKEN dozvole na samo čitanje.
- Skenirajte artefakte u potrazi za tajnama prije učitavanja.
Ova ranjivost naglašava rastuću zabrinutost oko napada na lanac snabdjevanja koji ciljaju CI/CD sisteme .
Slično nedavnom incidentu tj-actions/changed-files, pokazuje kako naizgled manji problemi u razvojnim alatima mogu prerasti u značajne sigurnosne rizike za širi ekosistem.
Izvor: CyberSecurityNews