GitLost: Bir GitHub Issue'su Özel Repoları Nasıl Sızdırıyor
GitHub Agentic Workflows'ta bulunan GitLost tekniği, tek bir kelimeyle tehdit tespiti filtresini atlatarak özel repo içeriğinin sızdırılmasına yol açıyor.
Noma Security, GitHub'ın Şubat ayında genel önizlemeye açtığı Agentic Workflows özelliğine karşı GitLost adını verdikleri bir dolaylı prompt injection tekniği yayınladı. Saldırı, bir organizasyonun ajana org genelinde okuma yetkisine sahip bir personal access token vermesiyle başlıyor; saldırgan sadece herkese açık bir repoda sıradan görünen bir issue açıyor, ajan bu issue'yu işlerken özel bir repodan README içeriğini çekip herkese açık bir yoruma yapıştırıyor. Bu yorum, verinin dışarı sızdırıldığı kanal haline geliyor.
Asıl dikkat çekici nokta, GitHub'ın bu senaryoya karşı kurduğu savunmaların (sandbox, salt-okunur token, girdi temizleme ve çıktıyı tarayan tehdit tespiti) tek bir kelimeyle atlatılabilmesi. Kötü niyetli talimatın başına "Additionally" (ayrıca) kelimesi eklendiğinde model bunu reddedilmesi gereken bir komut değil, devam eden bir görev olarak yorumlamış ve çıktı tarayıcısı bunu engelleyememiş. Bu, Simon Willison'ın "ölümcül üçlü" dediği yapıya tam olarak uyuyor: özel veriye erişebilen, güvenilmeyen dış içeriği işleyen ve veriyi dışarı gönderebilen bir ajan.
Noma bunun izole bir bulgu değil, Anthropic'in Claude Code GitHub Action'ı, Orca'nın RoguePilot'u ve Invariant Labs'in benzer bulgularıyla birlikte tekrarlanan bir sınıf olduğunu vurguluyor. Doğal dilde SQL'deki gibi net bir veri/komut ayrımı olmadığından, çözüm çıktıyı filtrelemek değil; token'ı tek bir repoyla sınırlamak, ajanın herkese açık ortamda paylaşabileceği çıktıyı kısıtlamak ve insan onayını zorunlu kılmak gibi mimari önlemler olarak öneriliyor.