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

Claude Code opravil ochranu proti čtení mimo pracovní adresář počtvrté za dva týdny

Claude Code 2.1.273 z 15. září opravuje dvě cesty kolem nastavení, které má nástroji zakázat čtení souborů mimo pracovní adresáře. Přepínač existuje od 1. září a je to u něj čtvrtá oprava. Hlášení, podle kterého táž ochrana naopak zahazuje adresáře deklarované projektem, zůstává otevřené.

Sériový terminál DEC VT220 připojený k tiskárně
Sériový terminál DEC VT220. Foto: Martin Cathrae, Wikimedia Commons (CC BY-SA 2.0)

Anthropic vydal 15. září Claude Code 2.1.273 a dvě položky v jeho seznamu změn mluví o jednom a tomtéž nastavení. Jmenuje se permissions.blockReadsOutsideWorkingDirectories a má nástroji zakázat, aby sahal na soubory mimo adresáře, se kterými zrovna pracuje. Zavedla ho verze 2.1.257 z 1. září. Za těch čtrnáct dní se u něj opravovalo počtvrté.

Proč ten přepínač vznikl

Claude Code umí běžet v režimu, kde se na svolení neptá. Zákaz čtení mimo pracovní adresáře je pojistka proti tomu, aby si nástroj v takovém běhu otevřel cokoli na disku. Dokumentace ho popisuje tak, že se rozpoznané čtecí příkazy shellu ptají i v automatickém režimu a i v tom, který jinak přeskakuje všechno.

Slovo „rozpoznané“ je v té větě to podstatné. Nástroj se rozhoduje podle toho, jestli si z příkazové řádky odvodí, na jaké soubory příkaz sáhne. Když si to odvodit neumí, musí se zeptat. Přesně tam vznikly tři ze čtyř oprav.

Příkaz, který se nedá rozebrat

Verze 2.1.271 ze 14. září opravila, že řádek se dvěma změnami adresáře, se subshellem nebo s řetězem cdgit dotaz přeskočil. O den později přišla 2.1.273 s obecnější verzí téhož: dotaz přeskakoval každý příkaz, který kontrola oprávnění neumí plně rozebrat. Táž položka zmiňuje ještě druhou vadu, a ta se čtením nesouvisí – subshell dokázal skrýt mazací příkaz rm v režimu, kde se nástroj na nic neptá.

Jedna změna ve stejném vydání jde opačným směrem. Anthropic vzal zpět úpravu z 2.1.268, podle které se u nerozebratelných řádků jako eval nebo env -C uplatňovala zakazovací pravidla pro čtení a úpravy souborů. Běžný příkaz typu time -p make build se od té chvíle zase ptá, místo aby ho nástroj rovnou odmítl.

Adresář, který si zvolí repozitář

Druhá oprava v 2.1.273 se týká paměti. Claude Code si vedle instrukcí v souboru CLAUDE.md vede vlastní poznámky, které si píše sám, a dokumentace u nich uvádí, že se načítají na začátku každého sezení v rozsahu prvních dvou set řádků nebo 25 kB. Kde ty poznámky leží, určuje klíč autoMemoryDirectory. Čte se z kteréhokoli místa, kde nastavení může být – z uživatelského, z projektového, z lokálního, z firemní politiky i z příkazové řádky – a hodnotou je absolutní cesta.

Do 2.1.273 se adresář zvolený nastavením v repozitáři načetl do promptu, indexoval se a použil při vytahování poznámek, aniž ho zapnutý zákaz čtení mimo pracovní adresáře zastavil. Nové vydání to dělat přestalo.

Otevřít si tu cestu nemůže kdokoli. Dokumentace u autoMemoryDirectory v projektovém nastavení odkazuje na totéž pravidlo důvěry, jaké platí pro hooky, takže uživatel musí projekt nejdřív označit za důvěryhodný. Zákaz čtení je ovšem druhá obrana postavená nad tu první a má držet právě tehdy, když se ta první ukáže jako přehnaně velkorysá. Podobný případ u konkurence popisuje článek o programu, který Codex spustil podle nastavení cizího repozitáře.

Čtyři opravy, patnáct vydání

Mezi 1. a 15. zářím vyšlo podle evidence balíčku na npm patnáct verzí Claude Code. Zákaz čtení mimo pracovní adresáře se v jejich seznamech změn objevil pětkrát:

verzedatumco se změnilo
2.1.2571. 9.nastavení přibylo
2.1.2603. 9.na macOS schovávalo i to, co schovat nemělo
2.1.27114. 9.dvojí cd, subshell a řetěz cd+git přeskočily dotaz
2.1.27315. 9.dotaz přeskočil každý nerozebratelný příkaz
2.1.27315. 9.adresář s pamětí z nastavení repozitáře

Oprava z 3. září míří na opačnou stranu než zbylé tři. Ochrana tehdy na macOS schovala uživatelovo nastavení gitu před gitem běžícím v sandboxu a subagentovi izolovanému ve vlastním pracovním stromu jeho vlastní kopii repozitáře.

Hlášení, které pořád běží

Na přehnanou přísnost míří i hlášení #92582, otevřené 7. září a k 16. září stále nezavřené. Jeho autor popisuje sezení, ve kterém uživatelské nastavení zapíná zákaz čtení a projekt si k tomu deklaruje další pracovní adresáře. Hlavička sezení je vypíše všechny, jenže čtecí nástroje soubory pod těmi projektovými odmítnou. Příkaz /add-dir v témž sezení funguje, takže se to obejít dá – jen ne v běhu, u kterého nikdo nesedí. Hlášení nese na GitHubu štítky bughas repro, tedy potvrzený postup na zopakování.

Anthropic na tu oblast viditelně tlačí. Mezi opravami ze 14. a 15. září je jediný den a dokumentace dnes popisuje i chování u nerozebratelných příkazů, takže se čtenář nemusí spoléhat na seznam změn. Co přepínač zrovna drží, se ale dá zjistit jedině čtením seznamu změn verzi po verzi. Za prvních čtrnáct dní se jeho chování změnilo ve čtyřech z patnácti vydání.

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

    Knihovna wandb před verzí 0.29.0 nehlídala cestu ke staženému souboru

    Klient wandb před verzí 0.29.0 spojil zvolenou složku s názvem souboru ze serveru, aniž odmítl nadřazené nebo absolutní cesty. Kompromitovaný či útočníkem provozovaný…

  2. Bezpečnost

    MCPHub před verzí 1.0.32 dovolil směnit zachycený kód za přístupový token

    Záznam CVE-2026-90474 zveřejněný 12. září se týká vestavěného autorizačního serveru OAuth 2.0 v MCPHubu. Útočník musel nejdřív zachytit kód po souhlasu uživatele; verze…

  3. Bezpečnost

    HiddenLayer popsal šest způsobů, jak v Mistral Vibe obejít schvalování příkazů

    Bezpečnostní firma HiddenLayer zveřejnila 11. září šest záznamů CVE k nástroji Mistral Vibe, agentovi pro práci s kódem z příkazové řádky. Všechny popisují touž potíž z…

  4. Bezpečnost

    Google uvádí u chyby Agent Studia dvě data pro dotčené aplikace

    Chyba v automaticky vytvořeném proxy rozhraní aplikací z Google Agent Studia mohla nepřihlášenému útočníkovi vydat přístupový token výchozího servisního účtu Compute…