live_connect_constraints-feltIfølge Ferdiansyahs rapport udelod referenceimplementeringen for token-oprettelse live_connect_constraints-feltet A. Dette felt skal indeholde et bidi_generate_content_setup-objekt, der binder tokenet til en bestemt model, systeminstruktion og et sæt værktøjer.
Når live_connect_constraints er tomt eller fraværende, håndhæves ingen begrænsninger. En angriber, der får fat i det kortlivede token, kan derefter sende en klientstyret opsætningsramme (setup frame), der specificerer en hvilken som helst model, systemprompt og værktøjer efter eget valg. Serveren, der mangler token-bundne værdier at validere imod, accepterer angriberens konfiguration.
Vigtigt forbehold: De medfølgende kilder inkluderer ikke Googles officielle dokumentation for
live_connect_constraints, en CVE eller en Google-sikkerhedsmeddelelse, der bekræfter denne adfærd. Påstanden stammer fra Ferdiansyahs Medium-indlæg og bør betragtes som ubekræftet, men plausibel A.
Hvis sårbarheden er reel, er konsekvenserne betydelige for enhver applikation, der bruger Gemini Live API i en browserkontekst:
Udviklere på Googles AI-forum har rapporteret problemer med kortlivede tokens, der ignorerer systeminstruktioner og ikke fungerer som forventet med begrænsede endepunkter, hvilket tyder på, at det bredere økosystem stadig er under udvikling DD.
Den remediering, Ferdiansyah beskriver, er ligetil: udfyld live_connect_constraints.bidi_generate_content_setup-feltet under token-oprettelse med tre værdier:
model – Den nøjagtige Gemini-model, der skal bruges (f.eks. models/gemini-2.5-flash-native-audio-latest).system_instruction – Den påtænkte systemprompt, struktureret som parts indeholdende text.tools – En tom liste [] eller kun eksplicit tilladte værktøjer for at forhindre klientside-injektion.Her er den illustrative Python-kode fra Ferdiansyahs rapport A:
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": "Du er en kundesupportassistent..."}]
},
"tools": []
}
}
})
Bemærk: Fordi
live_connect_constraintsikke er dokumenteret i den officielle Google API-reference, der er angivet i kilderne, er dette eksempel baseret på Ferdiansyahs egen beskrivelse og bør testes mod den faktiske API før produktionsbrug A.
Følgende nøglepunkter forbliver uverificerede af de medfølgende kilder:
live_connect_constraints.BidiGenerateContentConstrained-endepunktet, når det modtager et ubeskyttet token, er ikke dokumenteret i de medfølgende officielle referencer DS.Indtil Google offentliggør en officiel meddelelse, er den sikreste tilgang at betragte sårbarheden som plausibel og anvende rettelsen proaktivt:
live_connect_constraints eller dets tilsvarende felt.newSessionExpireTime på omkring 60 sekunder for at begrænse vinduet for token-tyveri G.Gemini Live API er et kraftfuldt værktøj til at bygge realtids stemme- og videooplevelser. Et enkelt manglende felt i token-oprettelsesprocessen bør ikke underminere denne kapacitet – men udviklere skal sikre, at deres implementeringer er komplette.
Denne artikel er faktatjekket mod 27 medfølgende kilder, inklusive officiel Google-dokumentation, community-forumdiskussioner og den originale forskers rapport. Centrale påstande fra forskeren kunne ikke uafhængigt verificeres fra officielle kilder på tidspunktet for offentliggørelsen.