live_connect_constraintsEnligt Ferdiansyahs analys utelämnade referensimplementationen för att skapa token fältet live_connect_constraints A. Detta fält är tänkt att innehålla ett bidi_generate_content_setup-objekt som binder token till en specifik modell, systeminstruktion och uppsättning verktyg.
När live_connect_constraints lämnas tomt eller helt enkelt utelämnas, tillämpas inga begränsningar. En angripare som får tag på den ephemerala token kan då skicka en klientstyrd setup-frame med valfri modell, systemprompt och verktyg. Eftersom servern saknar token-bundna värden att validera mot, accepterar den angriparens konfiguration.
Viktigt förbehåll: De tillhandahållna källorna innehåller ingen officiell Googledokumentation för
live_connect_constraints, ingen CVE och ingen Googles säkerhetsadvisory som bekräftar detta beteende. Påståendet kommer från Ferdiansyahs Medium-inlägg och bör behandlas som overifierat men trovärdigt A.
Om sårbarheten är verklig är konsekvenserna betydande för alla applikationer som använder Gemini Live API i en webbläsarkontext:
Utvecklare i Googles AI-forum har rapporterat problem med att ephemeral-tokens ignorerar systeminstruktioner och inte fungerar som förväntat med begränsade endpoints, vilket tyder på att det bredare ekosystemet fortfarande mognar DD.
Den åtgärd som Ferdiansyah beskriver är enkel: populera fältet live_connect_constraints.bidi_generate_content_setup när token skapas med tre värden:
model – Den exakta Gemini-modell som ska användas (t.ex. models/gemini-2.5-flash-native-audio-latest).system_instruction – Den avsedda systemprompten, strukturerad som parts som innehåller text.tools – En tom array [] eller endast explicit tillåtna verktyg, för att förhindra injektion från klientsidan.Här är den illustrativa Python-koden från Ferdiansyahs inlägg 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 är en kundsupportassistent..."}]
},
"tools": []
}
}
})
Obs: Eftersom
live_connect_constraintsinte dokumenteras i den officiella Google API-referensen som ingår i källorna, är detta exempel baserat på Ferdiansyahs egen beskrivning och bör testas mot det faktiska API:et före användning i produktion A.
Följande viktiga punkter är fortfarande overifierade enligt de tillhandahållna källorna:
live_connect_constraints.BidiGenerateContentConstrained när den tar emot en obegränsad token dokumenteras inte i de medföljande officiella referenserna DS.Tills Google publicerar en officiell rekommendation är det säkraste tillvägagångssättet att behandla sårbarheten som trolig och tillämpa åtgärden proaktivt:
live_connect_constraints eller motsvarande fält.newSessionExpireTime på cirka 60 sekunder för att begränsa tidsfönstret för token-stöld G.Gemini Live API är ett kraftfullt verktyg för att bygga realtidsupplevelser med röst och video. Ett enda saknat fält i token-skapandeprocessen bör inte underminera den förmågan – men utvecklare måste se till att deras implementationer är kompletta.
Denna artikel har faktagranskats mot 27 tillhandahållna källor, inklusive officiell Googledokumentation, diskussioner i community-forum och den ursprungliga forskarens inlägg. Viktiga påståenden från forskaren kunde inte oberoende verifieras från officiella källor vid publiceringstillfället.