Gemini CLI 0.61 žádá potvrzení, když cizí obsah ovlivní sestavení
Stabilní verze Gemini CLI 0.61.0 přidala dvě brzdy proti nepřímému vkládání pokynů. Program upozorní na parametry příkazu převzaté z nedůvěryhodného zdroje a po vlastní úpravě konfiguračního souboru vyžádá potvrzení sestavení nebo testu. Oprava vyšla v balíčku na npm 24. září.
Gemini CLI 0.61.0 vyšlo jako stabilní verze v noci na 24. září. Seznam změn datuje vydání ještě 23. zářím, registr npm ale balíček zpřístupnil 24. září ve 00.04 UTC. Google mezi čtyřmi hlavními změnami jmenuje obranu proti nepřímému vkládání pokynů přes upravené soubory sestavení a nedůvěryhodné parametry příkazů.
Nejde o tutéž hranici jako u Gemini CLI 0.59 a nedůvěryhodných pracovních složek. Starší oprava bránila experimentálnímu serveru A2A převzít z cizího projektu definice serverů MCP a další místní nastavení. Verze 0.61 sleduje, zda se obsah načtený zvenčí propsal do příkazu, který má agent spustit.

Nedůvěryhodný zdroj dostane vlastní značku
OWASP označuje za nepřímé vložení pokynu situaci, kdy model přijme text z webu nebo souboru a ten změní jeho chování. U agenta s přístupem k příkazové řádce může důsledek přesáhnout špatnou odpověď: OWASP mezi možnými dopady uvádí i spuštění příkazu v připojeném systému. Doporučená obrana kombinuje označení cizího obsahu, omezená oprávnění a lidské potvrzení rizikové akce.
Gemini CLI už výstupy z webu a serverů MCP obaluje značkami <untrusted_context>. Nový sledovač nedůvěryhodného kontextu prochází historii konverzace a z takto označených bloků vytáhne slova, přepínače, cesty a adresy. Před spuštěním příkazu pak zjišťuje, zda se některý z nich objevil mezi jeho parametry.
Kontrola nepovažuje za podezřelé samotné běžné povely jako build, test nebo install. Hledá konkrétní přepínač či hodnotu převzatou z cizího textu. Když ji najde, uživatel dostane potvrzovací obrazovku se zvýrazněným parametrem. Návrh změny 29250 výslovně jmenuje obsah z Google Docs, Buganizeru, webového načítání a odpovědí serverů MCP.
Upravený soubor sestavení spustí druhou brzdu
Druhá větev ochrany začíná u vestavěných nástrojů edit a write_file. Když některý z nich zapíše do souboru, který řídí sestavení nebo závislosti, Gemini CLI si jeho cestu zapamatuje. Následující sestavení či test už nemá proběhnout bez potvrzení, protože by provedl nová pravidla z upraveného souboru.
Seznam ve zdrojovém kódu zahrnuje například package.json, zámky npm, pnpm, Yarnu a Bunu, soubory Make a CMake, pyproject.toml, go.mod, Cargo.toml, nastavení Gradlu a Mavenu i Dockerfile. Samostatně zachytává přípony pro Bazel, Make a CMake. Kontrolované spouštěče sahají od npm a pytest po cargo, go, gradle a ninja.
Potvrzovací zpráva ukáže jména souborů změněných dříve v témže sezení a kořen spouštěného příkazu. Volba je záměrně širší než hledání škodlivého řádku. Program nezkoumá, zda je nová část package.json nebezpečná; upozorní už na vazbu mezi nedávnou změnou a jejím provedením.
Sandbox už nedostane celé uživatelské nastavení
Stejné vydání opravuje i oddělení sandboxu od hostitelského systému. Návrh změny 29214 nahrazuje připojení celého adresáře ~/.gemini do kontejneru dočasnou kopií nastavení. Z ní odstraňuje hooky, vlastní příkazy nástrojů a klíče k rozhraním. Domovský adresář uvnitř kontejneru nastaví na /home/node.
Spouštění sandboxu z kořene domovského adresáře, z kořene souborového systému nebo přímo z ~/.gemini nově končí chybou. Kontrola rozbaluje i symbolické odkazy a u neexistujícího cíle prochází jeho rodiče, aby rozbitý odkaz citlivou cestu neschoval. Na macOS přibyla výslovná omezení čtení přihlašovacích údajů a zápisu do uživatelské konfigurace.
Oprava nezachytí každý způsob změny
Ve veřejném kódu je evidence souborů sestavení napojená na nástroje edit a write_file. Ruční změnu mimo Gemini CLI ani zápis jiným procesem tenhle mechanismus sám nezaznamená. Také porovnává jen obsah uvnitř značek untrusted_context. Kdyby některá cesta přinesla cizí text bez tohoto označení, nový sledovač ho do seznamu nedůvěryhodných slov nezařadí.
Google k opravě nepřidělil číslo CVE a v poznámkách k vydání neuvádí známé zneužití. Autor první změny označil jako vyzkoušený Linux; macOS ani Windows nezaškrtl. U opravy sandboxu jsou označené macOS a Linux, nikoli Windows. Z veřejných záznamů proto nelze udělat závěr, že firma ručně ověřila všechny nové hranice na všech podporovaných systémech.
Balíček @google/gemini-cli 0.61.0 na npm už nese značku latest. Nové potvrzení snižuje riziko, že agent vykoná pokyn schovaný v cizím textu, ale odpovědnost nezmizela: člověk ještě musí varování přečíst a neodsouhlasit příkaz jen proto, že ho navrhl nástroj.
Zdroje
- Gemini CLI 0.61.0, poznámky ke stabilnímu vydání
- Oprava nepřímého vkládání pokynů, návrh změny a rozsah ověření
- Zpevnění hranic sandboxu, návrh změny a testované platformy
- OWASP LLM01:2025 Prompt Injection, nezávislý popis rizika a obranných opatření
- Balíček Gemini CLI 0.61.0 na npm, čas zveřejnění instalovatelné verze