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

Kód ze sandboxu Claude Code mohl na macOS přesměrovat úpravu souboru mimo projekt

Anthropic 26. října zveřejnil hlášení k chybě, kvůli které proces v sandboxu Claude Code na macOS dokázal nasměrovat nástroj Edit k souboru mimo pracovní adresář. Opravila ji verze 2.1.251 z 28. srpna; nálezci ji nahlásili už 22. července.

Podsvícená klávesnice notebooku MacBook Pro v modrém světle
Podsvícená klávesnice MacBooku Pro. Foto: Eugene Alvin Villar (seav), Wikimedia Commons (CC BY-SA 4.0)

Anthropic 26. října zveřejnil v repozitáři Claude Code bezpečnostní hlášení GHSA-5xjx-9qx6-jcrv se závažností vysoká a známkou 7,7 podle CVSS 4.0. Týká se Claude Code na macOS ve verzích před 2.1.251. Ta podle registru npm vyšla 28. srpna, takže od opravy ke zveřejnění uplynulo 59 dní. Chyba má přidělené číslo CVE-2026-88968, jenže rejstřík cve.org k němu 26. října záznam nevedl a databáze NVD ho neznala.

Proces ze sandboxu ven nemohl, nástroj Edit ano

Claude Code dělí práci mezi dvě strany. Příkazy v Bashi a všechno, co spustí – testy, sestavovací skripty, skripty závislostí z repozitáře –, můžou běžet v sandboxu, který na macOS hlídá systémový mechanismus Seatbelt. Vestavěné nástroje na práci se soubory, mezi nimi Edit, běží mimo sandbox v hlavním procesu. Smějí zapisovat jen tam, kam je pustí kontrola oprávnění.

Chyba byla v pořadí kroků. Edit si cestu k souboru ověřil, rozložil symbolické odkazy a kontrolu zopakoval. Pak ale asynchronně zakládal chybějící adresáře a soubor nakonec zapsal podle původního textu cesty. Proces v sandboxu mezitím mohl jedním atomickým krokem prohodit adresář uvnitř projektu za připravený symbolický odkaz, tedy zástupce mířícího jinam. Cesta zůstala napsaná stejně, jen vedla ven, a Edit přepsal soubor mimo pracovní adresář. Hlášení chybu řadí mezi souběhy mezi kontrolou a použitím (CWE-367) a následování odkazu (CWE-59).

Útočník k tomu potřebuje spustit vlastní kód uvnitř sandboxu. Hlášení jako příklad uvádí škodlivý repozitář nebo skript některé závislosti. Přepsat jde jen soubor, do kterého smí psát uživatel, pod jehož účtem Claude Code běží.

Rozbor nálezců nese datum o den starší než oprava

Postup podrobně popsala firma CodeAnt AI v rozboru s datem 27. srpna. Podle jeho časové osy dostal Anthropic hlášení přes HackerOne 22. července, o dva dny později ho uznal se závažností vysoká a 10. srpna vyplatil odměnu. Částku rozbor neuvádí. Nálezci zkoušeli verzi 2.1.217 na Macu s procesorem Arm. Že je chyba opravená, rozbor k uzávěrce potvrdit nemohl; verze 2.1.251 vyšla o den později.

Rozbor ukazuje i to, jak se útočník k zápisu dostane bez cizí pomoci. Uživatel otevře cizí repozitář a požádá Claude, ať spustí testy a opraví, co spadne. Test ohlásí chybějící soubor na cestě, která vypadá jako uvnitř projektu. Claude ho vytvoří nástrojem Edit a pomocný proces z testu v tu chvíli adresář prohodí. Ve třech po sobě jdoucích bězích tak přepsali soubor mimo projekt a kontrola oprávnění přitom nezamítla nic. V sousedním projektu, který sledoval vývojový server s automatickým načítáním změn, se podvržený kód rovnou spustil. Autoři zdůrazňují, že spuštění kódu vyžaduje takového hlídače vedle; samotná chyba je přepis souboru.

Rozbor podepisuje Amartya Jha, kdežto hlášení Anthropicu jako nálezce uvádí Sundera Singha (účet mahoraga007 na HackerOne). Platforma, nástroj, popis postupu i známka 7,7 se v obou textech shodují.

Poznámky k vydání jmenují tři nástroje, hlášení jeden

V poznámkách k vydání verze 2.1.251 se k chybě hodí jediná položka. Podle ní verze opravuje nástroje Read, Write a Edit, které po kontrole oprávnění šly za symbolickým odkazem vyměněným uvnitř pracovního adresáře, a mohly tak číst nebo zapisovat mimo schválené místo. O macOS v ní nepadne ani slovo. Hlášení naopak mluví jen o nástroji Edit a jen o macOS. CodeAnt k tomu píše, že stejné pořadí kontroly, zakládání adresářů a zápisu našel i v nástroji Write, útok ale v praxi ověřil jen na Edit.

Tutéž položku zmínil začátkem října článek o starším hlášení GHSA-5j29-h97v-84ch. Tehdy se nedalo poznat, jestli patří k němu, nebo k jiné chybě. Nové hlášení na položku výslovně neodkazuje, ale jako opravenou uvádí právě verzi 2.1.251, kdežto starší hlášení verzi 2.1.129 z května. Oprava z konce srpna tedy patřila k chybě, kterou Anthropic ohlásil teprve teď.

Koho se to týká

Hlášení připomíná, že kdo má zapnuté automatické aktualizace, opravu už dostal. Verzi ukáže příkaz claude --version. Opravené je všechno od 2.1.251 výš; registr npm vede 26. října jako nejnovější verzi 2.1.310 a ve stabilním kanálu 2.1.308. Ohrožený byl hlavně ten, kdo na Macu nechával Claude Code pouštět testy cizích repozitářů v sandboxu a zároveň mu dovolil upravovat soubory bez ptaní, například v režimu acceptEdits. Pro takovou práci CodeAnt doporučoval schvalovat u cizího kódu každou úpravu zvlášť.

Repozitář Claude Code vede k 26. říjnu 36 bezpečnostních hlášení, 29 z nich se závažností vysoká. Čtyři přibyla v říjnu.

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

    Anthropic popsal zranitelnost Claude Code až pět měsíců po její opravě

    Bezpečnostní hlášení o zápisu mimo projekt přes podvržený symbolický odkaz vyšlo 5. října, oprava podle něj přišla ve verzi 2.1.129 z 5. května. Mezi hlášeními k Claude…

  2. Infrastruktura

    Opravy, které OpenAI uvádí z testů izolace modelů, vznikly dřív, než pozastavila trénink

    OpenAI 23. října popsala, jak její agenti při zkouškách unikali z virtuálních strojů a hledali cestu na internet. Jako doklad uvádí opravy v Kata Containers, gVisoru a…

  3. Bezpečnost

    Na příčinu chyb PHP2Shell, připisovaných modelům, narazil vývojář PHP už v roce 2024

    Nadace PHP zveřejnila 21. října časovou osu dvou kritických chyb, kterým se říká PHP2Shell. První náznaky problému s docházející pamětí podle ní našel vývojář placený…

  4. Bezpečnost

    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…