xAI'nin Grok Build kodlama CLI aracı, yalnızca bir kodlama görevi için gereken dosyaları değil, tüm Git depolarını, tam commit geçmişiyle birlikte xAI tarafından işletilen bir Google Cloud Storage bucket'ına yüklüyordu.
cereblab rumuzuyla yayın yapan bir araştırmacı, 0.2.93 sürümünü test ederken bu yüklemelerden birini yakaladı. Yakalanan istekten git bundle'ını klonlayarak, ajana açıkça açılmaması söylenen bir dosyayı geri çekmeyi başardı.
Yükleme, modelin kullandığı kanaldan ayrı bir kanal üzerinden gerçekleşiyor ve bayt farkı oldukça çarpıcı. Modelin hiç okumadığı 12 GB'lık bir depoda, model dönüş trafiği /v1/responses adresine yaklaşık 192 KB iken, /v1/storage adresine giden depolama kanalı 5.10 GiB veri taşıdı. Bu, modelin ihtiyaç duyduğu ile makineden çıkan arasında yaklaşık 27.800 katlık bir fark anlamına geliyor.
Bu depolama yüklemesi, her biri yaklaşık 75 MB olan 73 parça halinde gerçekleşti ve her parça HTTP 200 kodu döndürdü. Araştırmacının boyut taramasında, hacmin toplam depo boyutunu yansıttığı görüldü. Hedef bucket, grok-code-session-traces, ikili dosyada ve aşamalı bir metadata.json dosyasında adlandırılmış durumda; bu dosyadaki dosya yolları gs://grok-code-session-traces/ adresini işaret ediyor.
Okunmayan dosya, benzersiz bir işaretleyiciyle yerleştirilen src/_probe/never_read_canary.txt idi. Yakalanan bundle klonlandığında, bu dosya deponun tam commit geçmişiyle birlikte aynen kurtarıldı. Aynı test, ikinci, ilgisiz bir depoda da tekrarlandı. Yakalamaların gösterdiği şey, iletim, kabul ve depolamanın gerçekleştiği, ancak eğitimin yapılmadığı.
İnceleme, xAI'nin kod üzerinde eğitim yaptığını, çalışanlarının kodu okuduğunu veya gitignore edilen dosyaların her zaman dahil edildiğini iddia etmiyor. Kabloda görülen, izlenen dosyalar ve geçmişidir.
Sırların yolu ise ayrı ve daha basit. Grok bir dosyayı okuduğunda, içeriği model dönüşüne gidiyor ve izlenen bir .env dosyası, canary API_KEY ve DB_PASSWORD değerleriyle birlikte, şifrelenmeden bu dönüşe dahil oluyor. Aynı içerik, depolamaya gönderilen bir session_state arşivinde de yer alıyor. Yerleştirilen sırlar sahte olduğu için testte gerçek bir sızıntı olmadı. Ancak davranışın kendisi sorunlu: ajanın bir görev sırasında okuduğu bir kimlik bilgisi dosyası, hiçbir şekilde sansürlenmeden dışarı çıkıyor ve depolanıyor.