Přeskočit na obsah
Bezpečnost 4 min čtení

Doloženou opravu chyby Plugin4Shell mají ze čtyř agentů jen Claude Code a Codex

Firma Air Security v září popsala, jak u Claude Code, Codexu, GitHub Copilotu a Gemini CLI podvrhnout plugin, který tržiště připnulo na prověřený commit. Anthropic chybu opravil v červnu a hlášení s číslem CVE vydal až 9. října, OpenAI ji v Codexu opravil bez hlášení. Gemini CLI má v hlavní větvi pořád tentýž kód.

Mosazný visací zámek na zrezivělém řetězu omotaném kolem kmene stromu
Visací zámek na řetězu kolem stromu. Foto: Dori, Wikimedia Commons (CC BY 2.5)

Tržiště pluginů pro agenty, kteří píšou kód, slibují jednu věc: plugin projde kontrolou, tržiště si zapíše otisk prověřeného commitu a agent pak nainstaluje přesně ten. Výzkumníci z firmy Air Security 17. září zveřejnili rozbor chyby, kterou nazvali Plugin4Shell. Ukázali v něm, že ten slib neplatil u Claude Code, Codexu, GitHub Copilotu ani Gemini CLI. Agent commit vybral, ale už neověřil, že ho opravdu dostal.

Nejčerstvější krok udělal Anthropic. Hlášení GHSA-pq7j-f95f-qfcv vydal 9. října a záznam CVE-2026-86063 přibyl v rejstříku 13. října. U zbylých tří agentů vypadá stav každý jinak.

Git dá přednost větvi před commitem téhož jména

Otisk commitu je čtyřicet šestnáctkových znaků. Git ale dovolí pojmenovat stejně i větev. Kdo ovládá repozitář pluginu, založí větev pojmenovanou přesně jako připnutý otisk, nasměruje ji na jiný kód a udělá z ní výchozí větev repozitáře. Klon ji pak stáhne jako místní větev a příkaz pro přepnutí na připnutý commit skončí na ní. Git k tomu vypíše jen varování o nejednoznačném jménu.

Chování jsme si ověřili v pokusném repozitáři s gitem 2.45.1. Dokud větev s tím jménem existovala jen na vzdálené straně, přepnutí skončilo na správném commitu. Jakmile byla místní, git přepnul na ni a vrátil kód úspěchu. Přitom git rev-parse na totéž jméno v témže repozitáři dál vracel připnutý commit. Varování gitu tvrdí, že se takové jméno při zadání celého otisku přehlíží, jenže přepínání větví se tím neřídí.

Podle Air Security GitHub větev se čtyřiceti šestnáctkovými znaky odmítne, Bitbucket a vlastní servery ji přijmou. Dokumentace Claude Code přitom jako zdroj pluginu vede vedle GitHubu i libovolný repozitář zadaný adresou, s polem sha pro připnutí. Bez kliknutí to podle autorů rozboru funguje kvůli automatickým aktualizacím pluginů, které mají Claude Code i Codex zapnuté ve výchozím stavu. Když tržiště posune připnutý otisk na novou verzi, agent ji stáhne sám.

Gemini CLI má jinou cestu ke stejnému výsledku. Připnutý commit si stáhne a pak přepne na FETCH_HEAD, tedy na značku posledního stažení. Když se ale výchozí větev repozitáře jmenuje právě FETCH_HEAD, git znovu dá přednost jí.

Anthropic chybu opravil v červnu, hlášení vydal v říjnu

Hlášení se týká Claude Code i aplikace Claude Desktop a za opravenou označuje verzi 2.1.179. Ta podle registru npm vyšla 16. června. Air Security má v časové ose, že ji Anthropic potvrdil o den později. V poznámkách k vydání má verze 2.1.179 devět položek a o připínání pluginů nemluví žádná. Nejblíž má k pluginům věta o rychlejším načítání ve vzdálených sezeních.

Hlášení dostalo známku 7,7 podle CVSS 4.0. Americká databáze NVD má záznam ve stavu čekání na rozbor. Mezi opravou a hlášením tak uplynuly necelé čtyři měsíce. U Claude Code to není poprvé: hlášení o zápisu přes podvržený symbolický odkaz vyšlo 5. října, 152 dní po opravě.

Codex má opravu, hlášení nemá

OpenAI chybu v Codexu opravil návrhem změny #34644 „Verify Git plugin SHA checkouts“, začleněným 22. července. Jeho popis mechanismus pojmenovává přesně: git umí požadovaný otisk vyložit jako jméno větve, když se tak jmenuje výchozí větev vzdáleného repozitáře. Codex od té doby po přepnutí zjistí, na jakém commitu skončil, a když nesedí s připnutým, instalaci odmítne.

Oprava vyšla ve verzi 0.146.0 z 29. července. V přehledu novinek a oprav té verze chybí, je jen v dlouhém seznamu začleněných změn pod číslem návrhu. Bezpečnostní hlášení k ní repozitář Codexu nemá; poslední, které tam visí, je ze září 2025.

Copilot čeká, Gemini CLI vychází dál s původním kódem

Microsoft podle Air Security k 17. září opravu nevydal. Od toho dne vyšlo šestnáct verzí Copilot CLI, od 1.0.86 po 1.0.102 z 21. října. Seznam změn u žádné z nich ověřování připnutého commitu nezmiňuje. Repozitář má dvě bezpečnostní hlášení a novější je z 6. května. Zdrojový kód Copilot CLI veřejný není, takže tichou opravu vyloučit nejde.

Google podle časové osy rozboru 4. srpna potvrdil, že Gemini CLI opravu nedostane, protože ho nahrazuje Antigravity. Gemini CLI přitom vychází dál, verze 0.65.0 vyšla 20. října. Jeho README uvádí, že ho Antigravity CLI 18. června nahradil u neplacené úrovně a u předplatitelů Google One. V souboru github.ts, který rozšíření z gitu instaluje, stojí k 22. říjnu pořád totéž pořadí: mělký klon, stažení zadaného odkazu a přepnutí na FETCH_HEAD. Kontrola, na jakém commitu instalace skončila, za ním nenásleduje.

Koho se to týká

Ohrožený je ten, kdo má z tržiště nainstalovaný plugin, jehož repozitář může někdo převzít nebo ho autor sám obrátí. Air Security připomíná, že převzetí cizích repozitářů už dřív doložila u 925 dovedností pro agenty. U Claude Code pomůže verze 2.1.179 a novější, u Codexu 0.146.0 a novější. Kdo má automatické aktualizace, opravu už dostal.

U Copilotu a Gemini CLI zbývá jen omezení zdrojů. Tržiště a pluginy hostované na GitHubu podle rozboru variantu s větví pojmenovanou jako otisk nepustí. Variantu s větví FETCH_HEAD tím ale Gemini CLI nezavře.

Zdroje

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

  1. Bezpečnost

    Agenti z Tencent Cloud se hlásili jako Claude, styl jejich kódu ale Claudovi neodpovídá

    Agenti AI běžící na Tencent Cloud se mezi 28. zářím a 8. říjnem 2026 přes 2 600krát pokusili stáhnout data z mapové služby Amap, obcházeli její ochranu proti robotům a…

  2. Bezpečnost

    Compliance API Clauda vrací firemní správě i osobní pokyny zaměstnanců

    Rozhraní Compliance API vrací od 15. října text, který si každý člen firemní organizace uložil jako svůj vlastní pokyn pro Clauda. Koncový bod je v betě a spadá pod…

  3. Bezpečnost

    Grok v simulaci poslal 187 zpráv kvůli vrácení jízdného po lhůtě

    Šest AI asistentů mělo získat 350 liber za zrušený vlak, přestože zákaznice zmeškala lhůtu k žádosti. Grok v simulaci poslal 187 zpráv a Claude Fable sdílel soukromou…

  4. Bezpečnost

    Opravu kritické díry v SGLangu zavřel správce spolu s dalšími návrhy téhož účtu

    SGLang vyhodnocuje ladicí filtr funkcí eval() a přes ni jde v procesu scheduleru spustit cizí kód. Nahlásil to 14. října Jiapeng Li, o 48 minut později poslal někdo jiný…