Alvin Ferdiansyah odkrył, że referencyjna implementacja Google dla tymczasowych tokenów Gemini Live API pomijała pole live connect constraints, umożliwiając atakującym przejęcie sesji przeglądarkowych AI poprzez wysła... Naprawa jest prosta: podczas generowania tokena należy wypełnić pole live connect constraints.bi...

Create a landscape editorial hero image for this Studio Global article: Search & fact-check with cited sources for What is the Gemini Live API flaw discovered by Alvin Ferdiansyah, how does it allow attackers to. Article summary: ## The Vulnerability. Topic tags: general, documentation, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, and tiny thumbnail layouts. Make it useful as an illustrative visual, not as factual evidence.
Pod koniec czerwca 2026 roku badacz bezpieczeństwa Alvin Ferdiansyah opublikował szczegółową analizę krytycznej konfiguracji w systemie tymczasowych tokenów Google Gemini Live API. Opisana przez niego luka – jeśli się potwierdzi – pozwala atakującemu, który zdobędzie krótkożyciowy token WebSocket, przejąć sesję AI w przeglądarce: kontrolować model, instrukcję systemową, a nawet narzędzia, które sesja może wykonywać.
Sedno problemu leży w brakującym polu bezpieczeństwa podczas generowania tokena. Oto, co wiemy, co pozostaje niepotwierdzone i jak programiści mogą już teraz chronić swoje wdrożenia.
Gemini Live API obsługuje połączenia WebSocket w trybie przeglądarka-serwer za pomocą tokenów tymczasowych (ephemeral tokens) – krótkożyciowych kluczy uwierzytelniających, które szybko wygasają i mogą być ograniczone do konkretnych zastosowań . Tokeny te są generowane przez backend, a następnie przekazywane klientowi, który używa ich do bezpośredniego połączenia z Gemini API bez ujawniania głównego klucza API.
Dokumentacja Google wyjaśnia, że tokeny tymczasowe są przeznaczone do implementacji klient-serwer, w których bezpieczeństwo ma kluczowe znaczenie – nawet jeśli zostaną przechwycone, krótki czas życia ogranicza potencjalne szkody . Endpoint dla tych ograniczonych połączeń to
BidiGenerateContentConstrained, który akceptuje token tymczasowy jako parametr zapytania access_token .
live_connect_constraintsWedług analizy Ferdiansyaha, referencyjna implementacja generowania tokenów pomijała pole live_connect_constraints . Pole to powinno zawierać obiekt
bidi_generate_content_setup, który wiąże token z konkretnym modelem, instrukcją systemową i zestawem narzędzi.
Gdy live_connect_constraints jest puste lub nieobecne, żadne ograniczenia nie są egzekwowane. Atakujący, który zdobędzie token tymczasowy, może wysłać kontrolowaną przez klienta ramkę konfiguracyjną (setup frame) wskazującą dowolny model, instrukcję systemową i narzędzia. Serwer, nie mając wartości związanych z tokenem do walidacji, akceptuje konfigurację atakującego.
Ważne zastrzeżenie: Dostarczone źródła nie zawierają oficjalnej dokumentacji Google dotyczącej
live_connect_constraints, CVE ani biuletynu bezpieczeństwa Google potwierdzającego to zachowanie. Twierdzenie pochodzi z wpisu Ferdiansyaha na Medium i należy je traktować jako niezweryfikowane, choć prawdopodobne.
Jeśli luka jest prawdziwa, konsekwencje dla każdej aplikacji używającej Gemini Live API w kontekście przeglądarkowym są poważne:
Deweloperzy na forum Google AI zgłaszali problemy z tokenami tymczasowymi ignorującymi instrukcje systemowe i niedziałającymi zgodnie z oczekiwaniami z ograniczonymi endpointami, co sugeruje, że cały ekosystem wciąż dojrzewa .
Opisane przez Ferdiansyaha rozwiązanie jest proste: podczas generowania tokena należy wypełnić pole live_connect_constraints.bidi_generate_content_setup
model – Dokładny model Gemini (np. models/gemini-2.5-flash-native-audio-latest).system_instruction – Docelowa instrukcja systemowa, sformatowana jako parts zawierające text.tools – Pusta tablica [] lub tylko wyraźnie dozwolone narzędzia, zapobiegające wstrzykiwaniu po stronie klienta.Oto przykładowy kod Pythona z wpisu Ferdiansyaha :
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": "Jesteś asystentem obsługi klienta..."}]
},
"tools": []
}
}
})Uwaga: Ponieważ
live_connect_constraintsnie jest udokumentowane w oficjalnym API Google, ten przykład opiera się na opisie Ferdiansyaha i powinien zostać przetestowany z rzeczywistym API przed użyciem produkcyjnym.
Następujące kluczowe punkty pozostają niezweryfikowane w dostarczonych źródłach:
live_connect_constraints.BidiGenerateContentConstrained podczas otrzymywania nieograniczonego tokena nie jest udokumentowane w oficjalnych referencjach Do czasu opublikowania oficjalnego biuletynu Google, najbezpieczniejszym podejściem jest traktowanie luki jako prawdopodobnej i zastosowanie poprawek prewencyjnie:
live_connect_constraints lub jego odpowiednik.newSessionExpireTime na około 60 sekund, aby ograniczyć okno do kradzieży tokena Gemini Live API to potężne narzędzie do budowania interakcji głosowych i wideo w czasie rzeczywistym. Pojedyncze brakujące pole w procesie generowania tokena nie powinno podważać tych możliwości – ale programiści muszą upewnić się, że ich implementacje są kompletne.
Ten artykuł został sprawdzony z 27 dostarczonymi źródłami, w tym oficjalną dokumentacją Google, dyskusjami na forach społecznościowych i oryginalnym wpisem badacza. Kluczowe twierdzenia badacza nie mogły zostać niezależnie zweryfikowane z oficjalnych źródeł w momencie publikacji.
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
Alvin Ferdiansyah odkrył, że referencyjna implementacja Google dla tymczasowych tokenów Gemini Live API pomijała pole live connect constraints, umożliwiając atakującym przejęcie sesji przeglądarkowych AI poprzez wysła...
Alvin Ferdiansyah odkrył, że referencyjna implementacja Google dla tymczasowych tokenów Gemini Live API pomijała pole live connect constraints, umożliwiając atakującym przejęcie sesji przeglądarkowych AI poprzez wysła... Naprawa jest prosta: podczas generowania tokena należy wypełnić pole live connect constraints.bidi generate content setup docelowym modelem, instrukcją systemową i pustą tablicą narzędzi.
Oficjalna dokumentacja Google i CVE nie są jeszcze dostępne, dlatego programiści powinni traktować lukę jako prawdopodobną i zastosować zabezpieczenia prewencyjnie.