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

Servery MCP rodiny faf mají opravu, tři jejich kopie na npm ji nemají

Databáze GitHubu vydala 19. srpna 2026 tři bezpečnostní hlášení k balíčkům faf-mcp, claude-faf-mcp a grok-faf-mcp: jejich nástroje si nechaly podstrčit cestu k libovolnému souboru na disku. Opravné verze vyšly už 11. června a všechny tři balíčky je dnes na npm mají. Pod jinými účty tam ale leží tři starší kopie téhož kódu, které opravu nenesou a které žádné hlášení nejmenuje.

Vysoké stohy stejných kartonových krabic na ulici
Stohy kartonů v Pekingu. Přebalit hotový obsah a poslat ho dál pod jiným štítkem jde i na npm. Foto: Lordcolus, Wikimedia Commons (CC BY 2.0)

Databáze bezpečnostních hlášení GitHubu přidala 19. srpna 2026 během čtyřiadvaceti vteřin tři záznamy. Týkají se balíčků faf-mcp, claude-faf-mcpgrok-faf-mcp, tedy tří serverů protokolu MCP, které agentovi podávají kontext projektu ze souboru .faf. Text hlášení je až na jména nástrojů a čísla verzí týž. Není to náhoda: všechny tři balíčky vydává na npm tentýž účet a všechny tři odkazují na repozitáře jednoho vlastníka.

Cesta ze zadání šla rovnou na disk

Nástroje serveru přijímají od volajícího argument path. Server v něm rozbalil vlnovku na domovský adresář, poskládal absolutní cestu a s ní sáhl na soubor. Chybělo přitom ověření, že výsledek leží uvnitř projektu, ke kterému se server hlásí – takže absolutní cesta i skok o adresář výš prošly a jedinou zbývající mezí byla práva procesu v operačním systému.

Popis jmenuje, co se tou cestou dá přečíst: soukromý klíč SSH, přihlašovací údaje ke cloudu, soubor .env s tajemstvími projektu. Shrnutí u faf-mcp a claude-faf-mcp mluví o čtení i zápisu, u grok-faf-mcp jen o čtení – ačkoli i jeho vlastní text o kus dál uvádí, že nástroj faf_write uměl zapsat mimo projekt. Závažnost je u všech tří vedená jako vysoká se známkou CVSS 7,5 a číslo CVE k ní přidělené není.

Podle hlášení běží server přes standardní vstup a výstup, ne jako služba na síti, takže ho zvenčí nikdo neosloví. Volání nástroje vydá agent – a ten se k němu dá přimět textem, který zpracovává. Že agentovi stačí podstrčit obsah, který si přečte jako pokyn, ukázalo měření na Claude Code a Codexu. Tady je odměnou domovský adresář uživatele.

Opravu pozná i ten, kdo nečte kód

Záplata přidala do balíčku jeden nový soubor, dist/src/utils/safe-path.js. Je vidět v seznamu souborů, takže se dá najít bez čtení kódu – stačí balíček z registru npm rozbalit. Ve verzích faf-mcp 2.1.2, claude-faf-mcp 5.7.1 a grok-faf-mcp 1.5.2 chybí, v následujících 2.1.3, 5.7.2 a 1.5.3 je. Ověřeno vlastním stažením všech šesti balíčků z registru npm 20. srpna 2026.

Všechny tři opravné verze vyšly 11. června 2026 mezi 14:46 a 14:51 UTC. Hlášení k nim přišla o devětašedesát dní později. Podobné pořadí měly opravy pěti chyb v knihovně Ruby pro MCP, tam byl ale odstup tři týdny.

Chybu podle poděkování v hlášení nahlásil Zhihao Zhang z Worcester Polytechnic Institute, a to u grok-faf-mcp; ostatní dva balíčky si správci prošli sami. Kdo některý z té trojice instaluje dnes, dostane opravený kód: na npm je faf-mcp 2.3.1, claude-faf-mcp 5.22.1 a grok-faf-mcp 1.9.1. Od 20. července do 19. srpna si je někdo stáhl 972krát, 2 580krát a 1 060krát.

Týž kód leží na npm ještě pod pěti jmény

Balíček z npm může znovu vydat kdokoli, kdo si ho stáhne a pošle nahoru pod svým účtem. U serverů faf to udělaly tři cizí účty a přibylo tím pět dalších záznamů. Údaj o repozitáři v jejich metadatech míří na tytéž adresy na GitHubu a licence je stejná, MIT.

@mseep/claude-faf-mcp 5.12.022. 6. 2026opravu má
@mseep/grok-faf-mcp 1.9.113. 8. 2026opravu má
@iflow-mcp/wolfejam-claude-faf-mcp 4.5.03. 3. 2026opravu nemá
@iflow-mcp/wolfe-jam-grok-faf-mcp 1.0.426. 2. 2026opravu nemá
@fastmcp-me/claude-faf-mcp 2.7.34. 11. 2025opravu nemá

Dvě kopie od účtu mseep vznikly po červnu a soubor safe-path.js v sobě mají. Zbylé tři jsou starší a nemají ho; jejich vydavatelé je od nahrání neaktualizovali, takže v nich zůstal kód z doby před opravou. Provoz mají malý – za totéž období 28, 27 a 28 stažení, dohromady tedy třiaosmdesát.

Žádné ze tří hlášení je nejmenuje a jmenovat je ani nemůže. Záznam se vede k balíčku a k rozsahu jeho verzí, takže kopii vydanou pod jiným jménem nemá s čím spárovat – a npm audit, který se řídí jménem a verzí, ji nechá být. Svoje mezery ostatně databáze GitHubu nezastírá: u brány ContextForge vedla jen jedno ze čtyř hlášení, která projekt vydal.

Servery MCP se instalují podle návodů, přehledů a katalogů a jméno balíčku bývá v každém z nich jiné. Než se člověk spolehne na to, že je nástroj v pořádku, protože o něm žádné hlášení nekoluje, vyplatí se otevřít vlastní konfiguraci a podívat se, jaké jméno v ní stojí.

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

    Přihlášený uživatel OpenShift AI může načíst společné klíče NVIDIA

    Red Hat zveřejnil 7. září zranitelnost CVE-2026-86332 se skóre 6,5. Přihlášený uživatel dashboardu OpenShift AI může bez správcovského oprávnění načíst společný klíč…

  2. Bezpečnost

    Hlídač agentů v API OpenAI umí konverzaci zastavit, hotové kroky ale nevrátí zpět

    Spolu s modelem GPT-6 Astra ohlásilo OpenAI 3. září 2026 systém, který na pozadí čte uvažování agenta a při podezření na nezamýšlený přenos dat nebo destruktivní zásah…

  3. Bezpečnost

    Dynamicky sestavený Bifrost mohl bez přihlášení spustit modul z webu

    Správní rozhraní AI brány Bifrost před verzí 2.0.0 přijímalo od nepřihlášeného volajícího internetovou adresu vlastního zásuvného modulu. V dynamickém sestavení mohl…

  4. Bezpečnost

    Souběžné načtení dvou vektorů promptu obešlo ve vLLM pojistku proti loňské díře

    Záznam CVE-2026-73557 popisuje, že pojistka, kterou vLLM přidal v prosinci 2025 proti chybě CVE-2025-62164, stála na přepínači společném pro celý proces. Když server…