Il server MCP Verify di Kluster espone gli utenti all'esaurimento dei crediti
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.
Riepilogo
- 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-mcpdi Kluster espone/streamtramite 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:
- 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.
- 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 chiamatefetchsi spostano silenziosamente sull’interfaccia di loopback della vittima, mantenendo la stringa di origine originale. - Pilotare l’API di verifica. Poiché
verify-mcpconsente 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
HosteOrigin, 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.