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-mcp od Klusteru vystavuje /stream př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:

  1. 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.
  2. 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í fetch se tiše přesměrují na smyčkové (loopback) rozhraní oběti, přičemž zachovají původní řetězec origin.
  3. Ovládání API verify. Protože verify-mcp povoluje 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 /stream a 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 Host a Origin a 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.