CrowdSec, mayıs ayında TanStack’in npm paketlerini hedef alan tedarik zinciri saldırısının kendi ortamına da sıçradığını ve bu süreçte özel GitHub depolarındaki kodun kopyalandığını açıkladı. Fransız siber güvenlik şirketi, sızan arşivin 16 Eylül’de bir çevrim içi forumda paylaşıldığını, içerikte 83 CrowdSec kullanıcısının e-posta adresleri ile 2020’deki 51 potansiyel yatırımcının ad, e-posta ve yatırım bağlamına ilişkin bilgilerin de yer aldığını bildirdi.
Şirket, olayda altyapısının ve veritabanlarının erişime açılmadığını, kod üzerinde değişiklik yapılmadığını ve saldırganların yalnızca kaynak kodunu kopyaladığını söylüyor. CrowdSec, kaynak kodun özel depolardan alındığını, açık kaynak Security Engine ürününden gelmediğini de vurguluyor. Gözler, şirketin bir eski çalışan hesabını belli işleri tamamlaması için açık bırakmasına ve bu hesaba bağlı GitHub OAuth belirtecinin nasıl kullanıldığına çevrilmiş durumda.
Mayıs ayındaki npm saldırısı üzerinden içeri sızdılar
TanStack’e yönelik kampanya 11 Mayıs’ta başladı. O gün 42 TanStack npm paketinin 84 kötü amaçlı sürümü yayımlandı. Olay, CVE-2026-45321 kimliğiyle izleniyor. TanStack’in yayımladığı güvenlik notuna göre zararlı sürümlerden biri yüklendiğinde geliştiricinin makinesinden GitHub token’ları, SSH anahtarları ve bulut kimlik bilgileri dahil olmak üzere çeşitli sırları toplayan kod çalışıyordu.
CrowdSec’in anlattığına göre kaynak kod kopyası, saldırıdan 11 gün sonra, eski çalışanın hesabına bağlı bir GitHub OAuth token’ı kullanılarak alındı. Şirket, ilgili erişimi bir süre daha açık tuttuğunu, çünkü çalışanın bazı işleri bitirmesini istediğini belirtiyor. 25 Mayıs’ta, kopyalama işleminin üzerinden üç gün geçtikten sonra ve ihlali öğrenmesinden aylar önce, eski çalışanın hesabı CrowdSec’in GitHub organizasyonundan çıkarıldı. Diğer erişim hakları ise zaten kaldırılmıştı; şirket, AWS sistemlerinde şüpheli bir hareket görememesini buna bağlıyor.
İnceleme sırasında token, CrowdSec’in kontrol edebildiği GitHub günlüklerinde görünmedi ve ihbar alındığında da artık geçerli değildi. Şirket, GitHub destek ekibinin token geçmişini geriye dönük izleyerek şüphesini doğruladığını ve kaynağın TanStack tarafı olduğunu teyit ettiğini söylüyor. CrowdSec, hangi kötü amaçlı paketin eski çalışanın dizüstü bilgisayarına ulaştığını ya da bunun tam zamanlamasını açıklamadı; yayımladığı raporda GitHub’ın kendi bulgularına da yer vermedi. Buna karşın şirket, geliştiricilere ait makinelerin kontrol edildiğini ve temiz çıktığını aktarıyor.
Aynı saldırı başka teknoloji şirketlerini de etkiledi. Mistral AI, kendi olayında bir geliştirici cihazının devrede olduğunu açıkladı. OpenAI ise iki çalışan cihazının etkilendiğini, bunun da sınırlı sayıda iç kaynak kod deposuna yetkisiz erişim sağlandığını bildirdi.
Sızan arşivde neler vardı
CrowdSec, açık kaynaklı Security Engine ürünüyle sunuculardaki saldırıları algılıyor ve paylaşım yapan kullanıcılar için ortak bir kötü amaçlı IP engelleme listesi oluşturuyor. Sızdırılan kod bu açık kaynak motordan değil, şirketin özel depolarından geliyor. Şirketin aktardığına göre arşivde web konsolu, veri bilimi betikleri ve modelleri, otomasyon script’leri ile hangi IP adreslerinin blok listesine ekleneceğine karar veren konsensüs algoritması yer alıyor.
Firma, kopyalanan kodun yaklaşık dört aylık olduğunu ve o tarihten bu yana ciddi biçimde değiştiğini belirtiyor. Buna rağmen sızıntının bir başka ayrıntıyı da açığa çıkardığını söylüyor: Konsensüs algoritmasının kullandığı eşik değerler artık biliniyor. Bunlar, bir IP adresinin blok listesine eklenmesi için kaç tespit gerektiği gibi daha önce kamuya açıklanmamış parametreleri içeriyor. CrowdSec’e göre mevcut haliyle blok listenin zehirlenmesi, yani zararsız bir IP’nin yanlışlıkla engellenmeye yönlendirilmesi hâlâ kolay değil. Şirket, böyle bir girişim için onlarca güvenilir motordan, onlarca ayrı ağ üzerinden çok sayıda tespit üretmenin gerektiğini ve bunun da yüksek maliyet anlamına geldiğini söylüyor. Eşiklerin ise ihtiyaç halinde değiştirilmesi mümkün.
CrowdSec’in tespitine göre sızıntıda işe yarar tek kimlik bilgisi AWS’nin SNS bildirim hizmetine aitti ve bu erişim yalnızca tek bir konuya mesaj yayınlayabiliyordu. Bu kimlik bilgisi 17 Ağustos’ta kullanıma alınmaya çalışıldı, ancak girişim daha ileri gidemedi. Şirketin bildirdiğine göre kod içindeki diğer belirteçler ya çoktan yenilenmişti ya da internet üzerinden kullanılamıyordu.
CrowdSec, yaklaşık 150 bin kullanıcısı bulunduğunu söylüyor. Veri bilimi ekibinin, ürünün nasıl kullanıldığını incelemek için açığa çıkan 83 e-posta adresini tuttuğu ve bu kullanıcılarla iletişime geçileceği belirtildi. 51 potansiyel yatırımcıya ait bilgiler ise CrowdSec’in 2020’de kullandığı ve kamuya açık olması amaçlanmayan bir sistemden geldi. Şirket, bu kişilere ve yetkili makamlara ihlali bildireceğini aktardı. CEO Philippe Humeau, raporda yatırımcılara hitaben “bunun için şahsen özür dilerim” ifadesini kullandı.
Şirket, sızıntıya konu olan kod içinde güvenlik motorunun kendisinden değil, özel geliştirme ortamından gelen parçaların bulunduğunu da not etti. Leaked arşivde yer alan yapının, kamuya açık blok listesi paylaşan açık kaynak ürünle aynı olmadığını söylüyor. Bu ayrım, CrowdSec’in yayımladığı raporda özellikle öne çıkarıldı.
Rapora göre blok listesine hangi IP’lerin gireceğini belirleyen konsensüs mekanizmasının ayrıntıları da ilk kez bu kadar net biçimde görünür oldu. CrowdSec, daha önce kamuya açıklanmamış eşiklerin sızmasıyla birlikte, IP bloklama kararlarını şekillendiren teknik parametrelerin de açığa çıktığını belirtiyor. Şirket yine de mevcut koşullarda bir saldırganın listeyi kolayca kirletemeyeceğini, bunun için birbirinden ayrı çok sayıda güvenilir motor ve ağdan ölçüm toplaması gerektiğini ifade ediyor.
Bu arada sızıntıda kullanıma açık tek erişim olarak görülen AWS SNS kimlik bilgisinin kapsamı da sınırlıydı. Şirket, bu belirtecin yalnızca tek bir konuyu mesajlandırabildiğini ve başka bir işlev taşımadığını bildiriyor. 17 Ağustos’taki deneme sonrası ilerleme sağlanmadığı için, bu erişimin operasyonel etkisi sınırlı kaldı.
CrowdSec, açığa çıkan 83 e-posta adresinin ürün kullanımını inceleyen veri bilimi ekibi tarafından tutulduğunu, bu kullanıcıların daha sonra doğrudan bilgilendirileceğini söylüyor. 51 yatırımcının bilgileri ise 2020’deki ayrı bir sistemden geldi. Şirket, bu sistemin hiçbir zaman kamuya açık olması için tasarlanmadığını özellikle vurguluyor.
Şirket açıklamasını revize etti
CrowdSec’in 18 Eylül tarihli raporu, bir gün önce yayımlanan ilk açıklamadan belirgin biçimde ayrılıyor. İlk metinde şirket, “müşteri verisi, giriş parolası, isim, organizasyon ya da başka hiçbir şeyin sızmadığını” ve etkinin yalnızca şirketle sınırlı kaldığını söylemişti. Aynı açıklamada, TanStack ihlalinin sızıntının büyük olasılıkla kaynağı olduğu ifade edilmiş, CrowdSec içinde mayıs ayında kullanılan bir bileşenin API anahtarını çalmak için arkadan kapılandırıldığı ileri sürülmüştü.
18 Eylül raporu ise bu iddiayı daraltıyor. CrowdSec, kötü amaçlı TanStack sürümlerinin kendi kodunda bulunmadığını ve izlerin eski çalışanın hesabına işaret ettiğini söylüyor. Yeni rapor, ilk açıklamada sızmadığı belirtilen yatırımcı isimlerini ve 83 kullanıcının e-posta adreslerini de listeliyor. Şirket ayrıca, bu ihlali yatırımcılara ve yetkili makamlara bildireceğini yineledi.
Şirket, 16 ve 17 Eylül’de açığa çıkan kimlik bilgilerini yenilediğini, o sırada geliştirici makinelerinde zorunlu uç nokta koruması bulunmadığını da not etti. Buna karşılık artık kod ya da sistemlerle çalışan personelin dizüstü bilgisayarlarında bu yazılımın kullanıldığını belirtiyor. Ne ilk açıklama ne de sonraki rapor, kullanıcıların ayrıca yapması gereken bir işlem tarif ediyor.
TanStack tarafındaki paket zinciri saldırısı ve ondan türeyen ikinci aşama ihlal, mayıs ayında yayımlanan kötü amaçlı npm sürümlerinin geliştirici makinelerine ulaştığında ne tür kimlik bilgileri ve depo erişimleri taşıyabildiğini bir kez daha ortaya koydu.
