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

    Databáze GitHubu vedla chybu v MONAI jako opravenou ve verzi, která vyšla před hlášením

    Hlášení GHSA-89gg-p5r5-q6r4 o spuštění cizího kódu v knihovně MONAI uvádělo od 7. dubna do 31. července 2026 jako opravenou verzi 1.5.2. Ta přitom vyšla 29. ledna a…

  2. Bezpečnost

    Webhooky MLflow vydaly obsah z vnitřní sítě i nepřihlášenému útočníkovi

    Výchozí server MLflow nechává rozhraní pro webhooky bez přihlášení a jeho pojistku proti SSRF šlo obejít obyčejným přesměrováním. Útočník tak mohl serveru poručit, ať…

  3. Bezpečnost

    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…

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