Server MCP Verify od Klusteru vystavuje uživatele vyčerpání kreditů
Server verify-mcp od Kluster AI důvěřuje jakékoli relaci prohlížeče, která dokáže dosáhnout jeho koncového bodu /stream.
Když je služba vystavena přes HTTP a navázána na 0.0.0.0, útok pomocí DNS rebindingu může proměnit prohlížeč oběti v proxy, který ovládá API z otevřeného internetu.
Během našeho testování nám tato technika umožnila vzdáleně vyvolat nástroj verify a spotřebovat kredity Kluster bez souhlasu uživatele.
Shrnutí
- Vektor útoku: DNS rebinding zneužívá model důvěry prohlížeče k přesměrování názvu domény z hostitele útočníka na
127.0.0.1, čímž obchází ochrany zásady stejného původu (Same-Origin Policy). - Vystavená komponenta: server
verify-mcpod Klusteru vystavuje/streampřes prostý HTTP a přijímá požadavky pouze na základě hlaviček Host dodaných klientem. - Pozorovaný výsledek: po rebindingu mohl JavaScript ovládaný útočníkem řídit nástroj verify, jako by šlo o místního uživatele, a spotřebovávat placené kredity.
Stejným způsobem selhávají i další nástroje popsané na tomto webu: Zranitelnost DNS rebinding v transportu SSE serveru Vet MCP a Neo4j MCP Cypher Server je zranitelný převzetím databáze pomocí DNS rebindingu.
Technická analýza
Útok probíhá ve dvou fázích DNS spolu s lehkou HTML/JavaScript payloadou:
- Počáteční navázání na infrastrukturu útočníka. Oběť navštíví web ovládaný útočníkem. První DNS dotaz se přeloží na veřejnou IP adresu útočníka, což nám umožní doručit skript, který dotazuje koncový bod Kluster.
- Rebinding na localhost. Po načtení stránky odpovídá DNS server útočníka na následující dotazy pro stejného hostitele hodnotou
127.0.0.1. Prohlížeče znovu použijí název z mezipaměti, takže následující volánífetchse tiše přesměrují na smyčkové (loopback) rozhraní oběti, přičemž zachovají původní řetězec origin. - Ovládání API verify. Protože
verify-mcppovoluje HTTP požadavky z libovolného původu a neověřuje hlavičky Host ani Origin, náš skript úspěšně odesílal (POST) úlohy na/streama spouštěl tak ověřovací běhy spotřebovávající kredity.
Tento vzorec není výlučný pro Kluster, ale kombinace HTTP přenosu a chybějícího ověřování hlaviček učinila zneužití triviálním.
Dopad
- Zneužití služby: vzdálení aktéři mohou spotřebovávat ověřovací kredity Kluster nebo zahlcovat API, což legitimním uživatelům způsobuje finanční ztráty nebo omezení počtu požadavků (rate limiting).
Doporučení
Pro Kluster AI
- Přísně ověřujte hlavičky
HostaOrigina odmítejte požadavky, které neodpovídají explicitnímu seznamu povolených (localhost,127.0.0.1). - Zaveďte autentizaci nebo API tokeny i pro místní relace, abyste zajistili, že akce spotřebovávající kredity mohou vyvolat pouze důvěryhodní volající.
Pro provozovatele a uživatele MCP
- Předpokládejte, že služby na localhostu jsou při přítomnosti DNS rebindingu dosažitelné přes prohlížeč; sledujte v protokolech neočekávané názvy původu.
- Upřednostňujte HTTPS (s řádnými certifikáty) a explicitní ověřování hlaviček u jakéhokoli nástroje vystaveného mimo smyčkové rozhraní.
- Poučte vývojáře, aby při prohlížení nedůvěryhodných stránek zavírali místní agenty, nebo použijte segmentaci sítě k izolaci služeb agentů od výchozího profilu prohlížeče.
Závěrečné myšlenky
DNS rebinding nadále stírá hranici mezi “místním” a “vzdáleným” u nástrojů MCP.
Posílením přenosových cest, ověřováním metadat požadavků a vyžadováním autentizace mohou dodavatelé platforem pomoci vývojářům být bezpečnější.
Časová osa
- 2025-07-17: úvodní hlášení odesláno bezpečnostnímu týmu Kluster AI.
- 2025-07-17: Kluster potvrdil přijetí téhož dne.
- 2025-08-29: navazující dotaz zaslán Kluster AI se žádostí o stav nápravy.
- 2025-10-16: technické bezpečnostní upozornění publikováno na mcpsec.dev.