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

OpenClaw pustí uložený klíč jen na vyjmenované servery, zatím v předběžném vydání

Agentní nástroj OpenClaw vydal 15. srpna předběžnou verzi, ve které podřízený proces místo klíče k cizímu rozhraní dostane jen zástupnou hodnotu. Skutečný klíč za ni dosadí až proxy uvnitř brány, a to výhradně u serverů vyjmenovaných dopředu. Ve vydání, které registr npm nabízí jako výchozí, ta pojistka není, přestože ji dokumentace na webu popisuje bez poznámky.

Agent, který má něco vyřídit na internetu, potřebuje klíč k cizímu rozhraní. Dokud ten klíč leží v proměnné prostředí podřízeného procesu, může s ním ten proces zavolat kamkoli. Nástroj OpenClaw na to od 15. srpna nabízí odpověď: klíč do procesu vůbec nepustí a dosadí ho až brána, a to výhradně u serverů, které jste vyjmenovali dopředu.

Visací zámek a dva klíče k němu
Visací zámek Solex položený vedle svých dvou klíčů. Foto: Trougnouf, Wikimedia Commons (CC BY 4.0)

Předběžné vydání 2026.8.1-beta.2 vyšlo 15. srpna 2026 a vazba uložených klíčů na cílové servery stojí v jeho poznámkách hned jako první bod. OpenClaw je agentní nástroj postavený kolem brány, přes kterou jdou rozhovory, připojené kanály i spouštění příkazů; na GitHubu má přes 386 tisíc hvězd.

Klíč dosadí až proxy, těsně před odesláním

Postup popisuje dokumentace brány. V prostředí podřízeného procesu nestojí klíč, ale zástupná hodnota tvaru oc-sent-v2.…end; dokumentace jí říká sentinel a je to ověřený šifrový text, ne použitelný přihlašovací údaj. Odchozí požadavky vede brána přes vlastní proxy na místní smyčce a ta zástupnou hodnotu nahradí skutečným klíčem v adrese, v hlavičkách i v těle, těsně předtím než požadavek opustí stroj.

Nahradí ji ovšem jen tehdy, když cílový server u toho klíče stojí v seznamu. Jména se ukládají malými písmeny v ASCII nebo punycode a porovnávají se přesně; schéma, cesta, port ani hvězdička se nepřijímají a klíč bez jediného povoleného serveru se nedosadí nikdy. Seznam plní opakovatelný přepínač:

openclaw secrets store set OPENAI_API_KEY --allow-host api.openai.com

Požadavek na jinou adresu proxy odmítne a do chybové hlášky vypíše jméno klíče i přesný příkaz, kterým by se ten server povolil. Tělo požadavku se prochází proudově s omezeným překryvem, takže záměna vyjde i u velkého souboru, kde zástupná hodnota přesahuje přes hranici dvou odesílaných částí.

Zapíná se ručně a platí jen pro příkazy od brány

Ve výchozím stavu je celá proxy vypnutá; zapne se přepnutím secrets.egressProxy.enabled na true a restartem brány. Podřízený proces pak dostane do prostředí HTTPS_PROXYHTTP_PROXY s přihlášením platným pro jediný běh a čtyři proměnné s cestou k dočasné certifikační autoritě. Ta vzniká při každém startu brány, její adresář má práva 0700 a soukromé klíče 0600, při vypnutí brány se maže a do systémového úložiště důvěryhodných certifikátů se podle dokumentace neinstaluje. Proxy se ověřuje obyčejným Basic s uživatelem openclaw a náhodným heslem na jeden běh; chybné nebo prošlé přihlášení dostane odpověď 407 a dál se nepřepošle.

Rozsah je úzký. Ochrana platí jen na příkazy, které spouští sama brána. Sandbox ani vzdálené spouštění přes node nedostanou proměnné proxy ani zástupné hodnoty, takže se ke sdíleným klíčům nedostanou vůbec. Do cizích agentních prostředí položky ze společného úložiště nevedou taky: app-server Codexu ani potomci ACP jako Claude Code si prostředí staví sami a ochranu přihlašovacích údajů řeší po svém.

Meze, které projekt vypisuje sám

Výčet omezení je v dokumentaci delší než popis samotné funkce. Vazba na server nedělá ze serveru důvěryhodné místo: služba, která přijatý údaj vrátí v odpovědi, ho agentovi předá stejně. Pravidlo stojí na jménu, ne na IP adrese, takže podvržené DNS pošle povolené jméno jinam. Nešifrovaný přenos se odmítá, ne chrání. Ke vzdálenému serveru mluví proxy jen protokolem HTTP/1.1, WebSocket nepřepisuje, HTTPS na jiném portu než 443 mezi podporované cíle nepatří a procesy na pozadí ztratí oprávnění ve chvíli, kdy skončí běh, pod kterým vznikly.

K tomu patří jedna věta o samotném úložišti: hodnoty v něm šifrované nejsou. Leží ve sdílené databázi SQLite a chrání je jen práva 0600 na souboru a 0700 na adresáři; kdo chce víc, má podle dokumentace sáhnout po externím správci hesel.

Ve vydání, které npm nabízí jako výchozí, přepínač není

Že jde zatím o předběžnou větev, se dá ověřit bez instalace. Registr npm vede pod značkou latest verzi 2026.7.1-2, pod beta právě 2026.8.1-beta.2 a pod extended-stable ještě starší 2026.6.34. Soubor s popisem příkazu secrets má ve značce stabilního vydání 7 649 bajtů a řetězec --allow-host se v něm nevyskytuje ani jednou; ve značce předběžného vydání má 14 130 bajtů a čtyři výskyty. Nastavení egressProxy pak v dokumentaci brány chybí nejen ve stabilním vydání, ale i v poslední betě řady 2026.7.2. Jde o vlastní srovnání obou značek ze 16. srpna 2026.

Stránka dokumentace přitom přepínač popisuje jako běžnou součást příkazu a slovo „beta“ na ní nestojí. Poznámky k vydání jsou obrácený případ: ohlašují vazbu klíčů na hosty, ale o proxy, přes kterou to celé jde, v nich není ani řádek. Kdo si chce udělat obrázek o tom, co přesně se s jeho klíčem děje, musí do dokumentace.

Stejný nápad se v témže vydání objevuje ještě jednou, jen v menším. U hlasové služby Gradium teď OpenClaw odmítne poslat klíč na nešifrovanou adresu, na cizího hostitele i na jméno, které se tomu pravému jen podobá, a přenos přišpendlí k hostiteli uvedenému v dokumentaci té služby. Vázat přihlašovací údaj na jedno konkrétní místo tedy v projektu není jednorázová výjimka.

Zdroje: poznámky k vydání 2026.8.1-beta.2, dokumentace ke správě klíčů, tentýž dokument ve značce 2026.7.1-2záznam balíčku v registru npm.

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

    Databáze GitHubu zná jen jedno ze čtyř bezpečnostních hlášení brány ContextForge

    Brána ContextForge stojí mezi jazykovým modelem a nástroji, které volá. Její vývojáři zveřejnili 15. června 2026 na repozitáři čtyři bezpečnostní hlášení; do databáze…

  2. Bezpečnost

    Do jména balíčku šlo ve stata-mcp schovat příkaz, který Stata rovnou spustila

    Server stata-mcp pouští statistický program Stata z agentních nástrojů. Do verze 1.19.0 skládal jméno instalovaného balíčku rovnou do příkazu pro Statu, takže se do něj…

  3. Bezpečnost

    Čtení cizích souborů v XAgentu má třetí číslo CVE a opravu jen ve zdrojových kódech

    VulnCheck zveřejnil 11. srpna záznam CVE-2026-72713: obsluha adresy /workspace/file v autonomním agentu XAgent přečte i soubory mimo vyhrazený adresář. Táž funkce už má…

  4. Bezpečnost

    Keras opravil čtení cizích souborů přes odkazy v HDF5 už potřetí za půl roku

    Soubor s váhami pro Keras nemusí obsahovat žádná data – stačí, když ukáže na jiný soubor HDF5 na disku oběti, a knihovna ho poslušně načte do modelu. Hlášení CVE-2026…