wfx-loot, ele geçirilmiş GitHub hesaplarıyla depoları yoklayan ve yazma yetkisi bulunan yerlerde sürekli entegrasyon (CI) ortamlarındaki sırları çalmaya yönelik kod ekleyen bir kimlik bilgisi hırsızlığı kampanyasıydı. Aikido, 4.837 hesabın 61.764 depoda deneme amaçlı pull request açtığını bildirdi. Şirketin yayımladığı sayımda, yükün en az 1.835 depoda çalıştığı ve kimlik bilgilerinin dışarı aktarıldığı belirtildi.
4
9
wfx-loot ne zaman gerçekleşti, ne kadar sürdü?
Faaliyet 10 Kasım 2026’da yaklaşık 12.45 UTC’de başladı. Bir rapora göre deneme pull request’lerinin görüldüğü dönem 11 Kasım 15.00 UTC’ye kadar sürdü; bu yaklaşık 26 saat 15 dakikalık bir aralık demek.
6
7 Bu, gözlemlenen yoklama dönemi. Yükün çalışmasının veya çalınan kimlik bilgilerinin sonradan kullanılmasının o saatte durduğunu doğrulamıyor.
Kampanyaya ilişkin sayılar, saldırının farklı aşamalarını anlatıyor:
- 4.837 hesabın ele geçirildiği bildirildi.
- 61.764 depo deneme pull request’i aldı. Bu sayı, saldırganların yokladığı depoları gösteriyor; zararlı yazılımın hepsinde çalıştığı anlamına gelmiyor.
- Aikido’nun yayımladığı sayımda, yükün çalıştığı ve kimlik bilgilerinin dışarı aktarıldığı en az 1.835 depo yer alıyor.
9
Bazı eşzamanlı haberlerde daha düşük olan 1.806 sayısı verildi.
6
10 Mevcut haberler bu farkın nedenini açıklamıyor; dolayısıyla bu sayıları tek bir toplam gibi birleştirmek yerine ayrı raporlanmış sayımlar olarak değerlendirmek gerekiyor. Sağlanan haberler, 66 binden fazla hedef arasından yaklaşık 1.970’inin doğrulanmış kamuya açık vaka olduğu yönündeki sonraki iddiayı da desteklemiyor.
Saldırganlar erişimi nasıl sınadı?
Saldırganlar, wfx-docs adlı dallardan docs: dependency audit notes başlıklı pull request’ler açtı. Bu istekler, ele geçirilmiş hesabın hedef depoda değişiklik yapma yetkisi olup olmadığını sınayan yoklamalar işlevi gördü.
3
4
9
Erişimin izin verdiği yerlerde CI ortamına sır çalan bir yük eklendi. Kampanya, GitHub Actions’taki bir açıktan değil, geçerli ancak çalınmış kimlik bilgilerinden yararlandı.
4
9 OX Security, zararlı yazılımı yaklaşık 1.500 satırlık tek bir kabuk betiği olarak tanımladı.
31
Bazı vakalarda zararlı değişikliklerin ve iş akışı kayıtlarının silindiği bildirildi; bu da incelemeyi zorlaştırdı.
1
6 Eldeki kanıtlar genel olarak yoklama, yükün çalıştırılması ve izlerin temizlenmesi örüntüsünü destekliyor. Ancak bildirilen her dağıtım yönteminin veya commit mesajının her bulaşmada kullanıldığını göstermiyor.
Yük hangi bilgileri hedefledi?
Belgelenen amaç, CI işlerinin erişebildiği kimlik bilgilerini toplamaktı. Bunlar arasında GitHub Actions sırları ve bulut kimlik bilgileri bulunuyordu; haberlerde yapay zekâ hizmetlerine ait belirteçlerin de hedeflendiği belirtiliyor.
3
9 OX Security’nin analizinde AWS, Azure ve Google Cloud kimlik bilgileri de hedefler arasında sayılıyor.
31 Ayrı haberlerde zararlı yazılımın sırları bulmak için çalıştırıcı süreçlerinin belleğini tarayabildiği aktarılıyor; ancak sağlanan alıntılar bu yöntemin ne sıklıkla başarılı olduğunu ortaya koymuyor.
17
29
Derlenmiş bir özet, AWS güven politikalarında değişiklik yaparak ve Azure’a federasyon kimlik bilgileri ekleyerek erişimi genişletme girişimlerinden söz ediyor.
5 Bu ayrıntılar raporlanmış davranışlar; etkilenen her depoda veya bulut hesabında değişiklik yapıldığının kanıtı değil. Eldeki kanıtlar kimlik bilgisi hırsızlığına işaret ediyor; kaynak kodunun ya da müşteri veritabanlarının çalındığını göstermiyor.
9
15
Raporlanan işaretler ne söylüyor, ne söylemiyor?
Bir haberde, işbirlikçi veya kuruluş erişimi üzerinden açılan 10.431 deneme pull request’inin yüzde 92’sinin kontrol sırasında hâlâ açık olduğu belirtildi.
10
19 Bu, o ana kadar birçok isteğe işlem yapılmadığını düşündürüyor; ancak hiçbir depo sahibinin veya güvenlik ekibinin bunları fark etmediğini kanıtlamıyor. Yüzde, tüm pull request’ler için geçerliymiş gibi yorumlanmamalı.
Bir inceleme kılavuzu ayrıca Fly.io GitHub App üzerinden kullanıcı belirteçleri kullanan 19 hesaptan 173 deneme pull request’i bildiriyor. Bu gözlem tek başına Fly.io altyapısının ihlal edildiğini veya bu belirteçlerle ulaşılan her depoda zararlı yükün çalıştığını göstermiyor.
37
Savunma ekipleri neleri kontrol etmeli?
Kuruluşunuzun etkilenmiş olabileceğini düşünüyorsanız, olay incelemesinde yoklandı, yük eklendi, yük çalıştı ve kimlik bilgileri dışarı aktarıldı aşamalarını birbirinden ayırın. Bunlar aynı bulgu değildir.
- Yoklama işaretlerini arayın. Hesaplarınızın yazma yetkisi bulunan depolarda
docs: dependency audit notes başlıklı pull request’leri ve wfx-docs dallarını inceleyin.
9
- CI ve denetim kayıtlarını gözden geçirin. İş akışı çalıştırmalarını, commit’leri, dal hareketlerini ve mevcut bulut günlüklerini kontrol edin. Raporlarda silinen çalıştırmalar ve kayıtlar anlatıldığı için eksik iş akışı numaraları inceleme ipucu olabilir; ancak tek başına ihlal kanıtı değildir.
1
24
- Etkilenmiş erişimi iptal edin. Ele geçirilmiş olabileceğinden şüphelenilen GitHub belirteçlerini iptal edin; hesap, işbirlikçi ve GitHub App erişimlerini gözden geçirin.
- Açığa çıkmış sırları kapsamlı biçimde yenileyin. Yük çalıştıysa, yalnızca geride kalan kayıtlarda görünenleri değil, o iş akışının erişebildiği sırları ve bulut rollerini de potansiyel olarak ele geçirilmiş kabul edin.
3
9
- Bulutta kalıcılık işaretlerini araştırın. Beklenmeyen AWS güven politikası değişikliklerini, Azure uygulama veya federasyon kimlik bilgisi değişikliklerini ve yetkisiz anahtarları ya da diğer erişim değişikliklerini inceleyin.
5
- Kanıtları koruyun. Temizlik adımlarına başlamadan önce kalan denetim kayıtlarını ve günlükleri saklayın; olay değerlendirmesinde hangi saldırı aşamasının kanıtlarla desteklendiğini kaydedin.