live_connect_constraints AlanıFerdiansyah'ın yazısına göre, token oluşturma için kullanılan referans uygulama live_connect_constraints alanını içermiyordu . Bu alanın, token'ı belirli bir modele, sistem talimatına ve araç setine bağlayan bir
bidi_generate_content_setup nesnesi içermesi gerekiyordu.
live_connect_constraints boş bırakıldığında veya hiç eklenmediğinde, herhangi bir kısıtlama uygulanmaz. Geçici token'ı ele geçiren bir saldırgan, daha sonra istediği modeli, sistem komutunu ve araçları belirten istemci tarafından kontrol edilen bir kurulum çerçevesi (setup frame) gönderebilir. Token'da bağlayıcı değerler olmadığı için sunucu, saldırganın yapılandırmasını kabul eder.
Önemli Uyarı: Sağlanan kaynaklar,
live_connect_constraintsiçin Google'ın resmi dokümantasyonunu, bir CVE'yi veya bu davranışı doğrulayan bir Google güvenlik bültenini içermemektedir. Bu iddia, Ferdiansyah'ın Medium yazısına dayanmaktadır ve doğrulanmamış ancak olası olarak değerlendirilmelidir.
Eğer güvenlik açığı gerçekse, sonuçları Gemini Live API'sini tarayıcı bağlamında kullanan herhangi bir uygulama için ciddi olabilir:
Google AI forumundaki geliştiriciler, geçici token'ların sistem talimatlarını yok saydığına ve kısıtlı uç noktalarla beklendiği gibi çalışmadığına dair sorunlar bildirmiş, bu da ekosistemin henüz olgunlaşma aşamasında olduğunu göstermektedir .
Ferdiansyah tarafından açıklanan düzeltme oldukça basittir: Token oluşturma sırasında live_connect_constraints.bidi_generate_content_setup
model — Kullanılacak tam Gemini modeli (ör. models/gemini-2.5-flash-native-audio-latest).system_instruction — Amaçlanan sistem komutu, text içeren parts şeklinde yapılandırılır.tools — İstemci tarafından araç enjeksiyonunu önlemek için boş bir dizi [] veya yalnızca açıkça izin verilen araçlar.token = gemini_client.auth_tokens.create({
"uses": 1,
"expire_time": now + timedelta(seconds=60),
"new_session_expire_time": now + timedelta(seconds=60),
"live_connect_constraints": {
"bidi_generate_content_setup": {
"model": "models/gemini-2.5-flash-native-audio-latest",
"system_instruction": {
"parts": [{"text": "Sen bir müşteri destek asistanısın..."}]
},
"tools": []
}
}
})Not:
live_connect_constraints, kaynaklarda sağlanan resmi Google API referansında belgelenmediğinden, bu örnek Ferdiansyah'ın kendi açıklamasına dayanmaktadır ve üretimde kullanılmadan önce gerçek API'ye karşı test edilmelidir.
Aşağıdaki önemli noktalar sunulan kaynaklar tarafından doğrulanmamıştır:
live_connect_constraints'in varlığını veya şemasını doğrulamamaktadır.BidiGenerateContentConstrained uç noktasının, kısıtlamasız bir token aldığında tam olarak nasıl davrandığı, sağlanan resmi referanslarda belgelenmemiştir Google resmi bir bülten yayınlayana kadar, en güvenli yaklaşım güvenlik açığını olası kabul etmek ve düzeltmeyi proaktif olarak uygulamaktır:
live_connect_constraints veya eşdeğer alanı doldurup doldurmadığını kontrol edin.newSessionExpireTime değerinin yaklaşık 60 saniye olarak ayarlanmasını önerir Gemini Live API, gerçek zamanlı ses ve video deneyimleri oluşturmak için güçlü bir araçtır. Token oluşturma sürecindeki tek bir eksik alan bu yeteneği zayıflatmamalıdır; ancak geliştiriciler uygulamalarının eksiksiz olduğundan emin olmalıdır.
Bu makale, resmi Google dokümantasyonu, topluluk forumu tartışmaları ve orijinal araştırmacının yazısı dahil olmak üzere 27 kaynağa dayanarak doğrulanmıştır. Araştırmacının temel iddiaları, yayın anında resmi kaynaklardan bağımsız olarak doğrulanamamıştır.