Přeskočit na obsah
Bezpečnost aktualizováno 14. 10. 2026 3 min čtení

Č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á dva starší záznamy, z března a července. Oprava leží v hlavní větvi od 31. července, jenže jediné vydání projektu i obrazy na Docker Hubu jsou z roku 2023.

Firma VulnCheck zveřejnila 11. srpna záznam CVE-2026-72713. Týká se XAgentu, autonomního agenta od skupiny OpenBMB, který má na GitHubu 8 531 hvězd. Vada je v obsluze adresy /workspace/file: jméno souboru přijaté od uživatele se připojí k pracovnímu adresáři a rovnou přečte, aniž se ověří, že výsledná cesta pořád leží uvnitř. Kdo do jména vloží odkaz na nadřazenou složku, čte soubory, které mu nepatří.

Stohy lodních kontejnerů v rotterdamském přístavu
Stohy lodních kontejnerů v rotterdamském přístavu. Snímek je ilustrační. Foto: AgainErick, Wikimedia Commons (CC BY-SA 4.0)

Účet si k tomu útočník založí sám

VulnCheck dal chybě 8,7 bodu podle CVSS 4.0 a zařadil ji pod CWE-22, tedy nedostatečné omezení cesty k souboru. Jako nálezce uvádí George Chena. Zneužití vyžaduje přihlášeného uživatele, jenže to je slabá překážka: hlášení chyby popisuje, že server ve výchozím nastavení odbaví registraci bez potvrzení e-mailu, a README projektu uvádí přihlašovací jméno i heslo, se kterými se webové rozhraní dodává.

Co se dá přečíst, záleží na způsobu spuštění. Podle hlášení se útočník dostane na konfigurační soubor s přístupem k databázi a dál na systémové soubory. Přiložený popis služeb pro Docker přitom staví server do kontejneru a vystavuje z něj porty 5173 a 8090; heslo k databázi MySQL je v témže souboru napsané natvrdo. Kdo si server pustí mimo kontejner, má rozsah větší.

Třetí číslo pro tutéž funkci

Zajímavější než chyba sama je její evidence. Táž funkce v témže souboru už dvě čísla má:

  • CVE-2026-3954 z 11. března, přidělené databází VulDB, mluví o workspace.py a o argumentu file_name. Hodnocení 6,5 podle CVSS 3.1.
  • CVE-2026-26396 z 13. července, přidělené organizací MITRE, mluví o funkci file() v témže souboru a o parametru filename. Známku neuvádí.
  • CVE-2026-72713 z 11. srpna popisuje totéž místo znovu, tentokrát s 8,7 bodu.

Tři přidělovatelé, tři popisy. Soubor i jméno parametru sedí ve všech třech záznamech, liší se jen to, jak která databáze funkci pojmenuje. Rozdíl ve známkách není překlep – hodnotitel počítá i to, jak snadno se útočník k účtu dostane, a na tom se dva posudky běžně rozejdou. Záznamů k XAgentu je v americké národní databázi zranitelností celkem osm, nejstarší z února 2024.

Po dvou letech ticha přišly dvě opravy za jedno odpoledne

Hlavní větev XAgentu byla od 4. března 2024 beze změny. Pak 31. července 2026 přibyly dva commity. Ten podstatný, 26f2b6e, přidal 230 řádků a 52 odebral. Přišel návrhem změny #432, který byl otevřený a sloučený během necelých tří minut.

Oprava není kosmetická. Zavádí nový soubor path_security.py se dvěma funkcemi, které cestu složí, převedou na skutečnou a odmítnou ji, pokud vede jinam než pod povolený adresář. K tomu přibyla podmínka, že konverzace musí patřit tomu, kdo o soubor žádá – dosud stačilo znát její identifikátor. A úplně zmizel koncový bod /register_new_tool, který přijímal kód nového nástroje a nechtěl k tomu žádné ověření. Součástí commitu je i soubor s regresními testy, takže se táž vada nemá vrátit tiše.

Odečtením data založení hlášení od data jeho uzavření vyjde 49 dní, odečtením data prvního čísla CVE od data stejné opravy 142 dní. U dvou starších záznamů zapsala VulDB poznámku, že autora upozornila předem a nedostala odpověď.

Návod na instalaci k opravě nevede

Tady je jádro problému. Projekt má jediné vydání v1.0.0 z 22. listopadu 2023 a novější nevyšlo. Obrazy, které README nabízí jako první způsob rozběhnutí, jsou stejně staré: toolserver-node i toolserver-manager a xagent-server mají značku latest podle rozhraní Docker Hubu naposledy změněnou 30. listopadu 2023.

Příkaz docker compose up proto stáhne obrazy, ve kterých červencová oprava není. A týká se to i druhé poloviny opravy: kontroly cest přibyly také v ToolServeru, tedy v té části, která běží v kontejneru. Kdo chce opravený stav, musí si vzít hlavní větev z GitHubu a obrazy si postavit sám příkazem docker compose build.

Rozestup mezi opravou a tím, co se dozví uživatel, není v tomhle oboru ojedinělý – Open WebUI vydalo sedmnáct záznamů CVE osm dní po opravné verzi a u agentních nástrojů se opakované záznamy sbírají dál, jak ukazuje pátý zápis Langflow do katalogu CISA. Rozdíl je v tom, že tam vydání existují.

Praktický závěr je nudný a platí i pro jiné agenty stažené z GitHubu: rozhraní, které umí sáhnout na soubory, nepatří na veřejnou adresu, a počet hvězd o údržbě neříká nic. XAgent jich má přes osm tisíc a dva a půl roku se v něm nezměnil řádek.

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

    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…

  2. 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…

  3. 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…

  4. 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…