Siber güvenlik araştırmacıları Wiz, Snowflake'ın kamu snowflakedb/snowflake-connector-net deposunda yeni bir GitHub Eylemleri iş akışı enjeksiyon açığı keşfetti. Bu açıklık, oluşturulmuş GitHub sorunları aracılığıyla komutların yürütülmesine neden olabilir.
Açıklık, .github/workflows/jira_issue.yml dosyasında bulunuyordu ve bir kamu sorunu açıldığında çalışıyordu. Ayrıca JIRA_BASE_URL, JIRA_USER_EMAIL ve JIRA_API_TOKEN bilgilerini aynı iş akışı adımına açığa çıkarıyordu.
İş akışı, saldırganın kontrol ettiği sorun başlığı ve gövde değerlerini doğrudan bir kabuk çalıştırma bloğuna ekliyordu. Ayrıca, github.event.pull_request.user.login değerini kontrol ediyordu, ancak bu olay bir sorun açılışıydı ve bu nedenle başvurulan çekme isteği özelliği mevcut değildi.
GitHub, "Bir varlık olmayan bir özelliğe başvuruda bulunursanız, boş bir dize olarak değerlendirilir" diyor. Bu durumda, whitesource-for-github-com[bot] ile karşılaştırma, normal bir sorunun işine ulaşmasını engellemiyordu.
Wiz, Red Agent sistemi aracılığıyla yetkili güvenlik testleri sırasında bu enjeksiyonu keşfetti. Araştırmacılar, ilk yüklemenin kabuk sentaks hatasına neden olduğunu ve sistemın yaklaşımını değiştirdiğini söyledi. Daha sonra, GitHub Eylemleri çalıştırıcısından out-of-band bir geri çağırma aldıklarını ve iş akışında kullanılan Jira API tokenini elde ettiklerini belirttiler.
Wiz'e göre, token [email protected]'e aitti ve snowflakecomputing.atlassian.net üzerindeki mühendislik, güvenlik uyumluluğu ve hata avı izleme projelerine erişim izni veriyordu. Altta yatan Jira izinleri, iş akışı çalışması ve denetim kayıtları kamu değildir.