200 self-hosted AI aracı incelendi: 78'inde kiracı izolasyonu kırık çıktı
200+ self-hosted AI ve SaaS ürününün kod incelemesinde 78'inde kiracılar-arası veri sızıntısı bulundu; kalıp, düzeltmeler ve kontrol yöntemi.
Bir güvenlik araştırmacısı, 200'den fazla çok kiracılı (multi-tenant) AI ve SaaS ürününün kaynak kodunu tek bir hata sınıfı için taradı: yazma uçlarında uygulanan yetkilendirme kontrolünün, aynı kaynağa erişen okuma uçlarında unutulması. Sonuç: 78 üründe 84 ayrı kiracılar-arası veri sızıntısı doğrulandı, 31'i GitHub Security Advisory olarak dosyalandı. Bulguların çoğu, sentetik hesap ve kanarya verisiyle kurulan izole Docker ortamlarında, açık kaynaklı bir izolasyon doğrulama aracıyla (Sectum AI) teyit edildi ve veritabanı gerçeğiyle karşılaştırıldı.
Hata deseni neredeyse mekanikti: geliştirici 'bu öğeyi sil' işlevine sahiplik kontrolü ekliyor, ama 'görüntüle' veya 'listele' gibi komşu uçlara aynı kontrolü kopyalamayı unutuyor. ID'ler genelde ardışık ve tahmin edilebilir olduğundan, bir kiracı başka bir kiracının kaydını doğrudan sıra numarasıyla çekebiliyor. Daha tehlikeli bir varyantta ise sistem, istenen nesne yerine sağlanan yolu (path) yetkilendiriyor — bu da RAG embedding vektörlerinin okunmasına veya bir kiracının saklı OAuth token'ı kullanılarak içeriğinin dışarı sızdırılmasına yol açabiliyor.
Şimdiye kadar SurfSense, AnythingLLM, Baserow, aideepin ve Flagsmith açık şekilde düzeltme yayınladı ve isimlendirildi; 90 günlük koordineli ifşa süreci nedeniyle geri kalan 79 bulgu isimsiz kalıyor. Open WebUI, Langfuse, LibreChat, Outline gibi araçlar testi geçti; Flowise, Mem0, MaxKB ve vLLM ise açık kaynak sürümlerinde zaten çok kiracılı tasarlanmamış. Mühendisler için ders net: okuma uçlarını da yazma uçları kadar sıkı yetkilendirin, embedding ve önbellek anahtarlarını kiracı verisi sayın, ve self-host ettiğiniz araçlarda varsaydığınız izolasyon duvarının gerçekten var olduğunu doğrulayın.