Il server verify-mcp di Kluster AI si fida di qualsiasi sessione del browser in grado di raggiungere il suo endpoint /stream.

Quando il servizio è esposto tramite HTTP e associato a 0.0.0.0, un attacco di DNS rebinding può trasformare il browser di una vittima in un proxy che pilota l’API dalla rete Internet aperta.

Durante i nostri test questa tecnica ci ha permesso di invocare lo strumento di verifica da remoto e di consumare i crediti Kluster senza il consenso dell’utente.

  • Vettore di attacco: il DNS rebinding abusa del modello di fiducia del browser per reindirizzare un nome di dominio da un host dell’attaccante a 127.0.0.1, aggirando le protezioni della Same-Origin Policy.
  • Componente esposto: il server verify-mcp di Kluster espone /stream tramite HTTP in chiaro e accetta richieste basandosi unicamente sulle intestazioni Host fornite dal client.
  • Risultato osservato: dopo il rebinding, il JavaScript controllato dall’attaccante ha potuto pilotare lo strumento di verifica come se fosse l’utente locale, consumando crediti a pagamento.

Altri strumenti trattati su questo sito presentano lo stesso problema: Vulnerabilità di DNS rebinding nel trasporto SSE del Vet MCP Server e Il Neo4j MCP Cypher Server è vulnerabile alla compromissione del database tramite DNS rebinding.

Analisi tecnica

L’attacco si sviluppa in due fasi DNS, abbinate a un payload HTML/JavaScript leggero:

  1. Associazione iniziale all’infrastruttura dell’attaccante. La vittima visita un sito controllato dall’attaccante. La prima risoluzione DNS punta all’IP pubblico dell’attaccante, consentendoci di servire uno script che interroga l’endpoint di Kluster.
  2. Rebinding verso localhost. Dopo il caricamento della pagina, il server DNS dell’attaccante risponde alle query successive per lo stesso host con 127.0.0.1. I browser riutilizzano il nome memorizzato nella cache, quindi le successive chiamate fetch si spostano silenziosamente sull’interfaccia di loopback della vittima, mantenendo la stringa di origine originale.
  3. Pilotare l’API di verifica. Poiché verify-mcp consente richieste HTTP da qualsiasi origine e non convalida le intestazioni Host o Origin, il nostro script è riuscito a inviare (POST) job a /stream, avviando esecuzioni di verifica che consumano crediti.

Questo schema non è esclusivo di Kluster, ma la combinazione di trasporto HTTP e assenza di convalida delle intestazioni ha reso lo sfruttamento banale.

Impatto

  • Abuso del servizio: attori remoti possono consumare i crediti di verifica di Kluster o inondare l’API di richieste, causando perdite economiche o rate limiting per gli utenti legittimi.

Raccomandazioni

Per Kluster AI

  • Convalidare rigorosamente le intestazioni Host e Origin, rifiutando le richieste che non corrispondono a un elenco di autorizzazioni esplicito (localhost, 127.0.0.1).
  • Introdurre autenticazione o token API anche per le sessioni locali, per garantire che solo i chiamanti fidati possano invocare azioni che consumano crediti.

Per operatori e utenti MCP

  • Presumete che i servizi in localhost siano raggiungibili tramite il browser in presenza di DNS rebinding; monitorate i log alla ricerca di nomi di origine inattesi.
  • Preferite HTTPS (con certificati adeguati) e una convalida esplicita delle intestazioni per qualsiasi strumento esposto oltre l’interfaccia di loopback.
  • Formate gli sviluppatori a chiudere gli agenti locali quando navigano su siti non affidabili, oppure utilizzate la segmentazione di rete per isolare i servizi degli agenti dal profilo predefinito del browser.

Considerazioni finali

Il DNS rebinding continua a rendere sfumato il confine tra “locale” e “remoto” per gli strumenti MCP.

Rafforzando i trasporti, convalidando i metadati delle richieste e richiedendo l’autenticazione, i fornitori di piattaforme possono aiutare gli sviluppatori a essere più sicuri.

Cronologia

  • 2025-07-17: segnalazione iniziale inviata alla sicurezza di Kluster AI.
  • 2025-07-17: Kluster ha confermato la ricezione lo stesso giorno.
  • 2025-08-29: richiesta di follow-up inviata a Kluster AI per conoscere lo stato della correzione.
  • 2025-10-16: avviso di sicurezza tecnico pubblicato su mcpsec.dev.