Ο διακομιστής verify-mcp της Kluster AI εμπιστεύεται οποιαδήποτε συνεδρία προγράμματος περιήγησης που μπορεί να φτάσει στο endpoint /stream.

Όταν η υπηρεσία είναι εκτεθειμένη μέσω HTTP και δεσμευμένη στο 0.0.0.0, μια επίθεση DNS rebinding μπορεί να μετατρέψει το πρόγραμμα περιήγησης του θύματος σε έναν proxy που οδηγεί το API από το ανοιχτό διαδίκτυο.

Κατά τη διάρκεια των δοκιμών μας, αυτή η τεχνική μας επέτρεψε να επικαλεστούμε το εργαλείο verify απομακρυσμένα και να εξαντλήσουμε πιστώσεις Kluster χωρίς τη συγκατάθεση του χρήστη.

Σύνοψη

  • Διάνυσμα επίθεσης: Το DNS rebinding καταχράται το μοντέλο εμπιστοσύνης του προγράμματος περιήγησης για να ανακατευθύνει ένα όνομα τομέα από έναν host του επιτιθέμενου στο 127.0.0.1, παρακάμπτοντας τις προστασίες Same-Origin Policy.
  • Εκτεθειμένο στοιχείο: Ο διακομιστής verify-mcp της Kluster εκθέτει το /stream μέσω απλού HTTP και δέχεται αιτήματα βασιζόμενος αποκλειστικά σε κεφαλίδες Host που παρέχονται από τον client.
  • Παρατηρούμενο αποτέλεσμα: Μετά το rebinding, JavaScript ελεγχόμενη από τον επιτιθέμενο μπορούσε να οδηγήσει το εργαλείο verify σαν να ήταν ο τοπικός χρήστης, καταναλώνοντας πληρωμένες πιστώσεις.

Τεχνική ανάλυση

Η επίθεση εκτυλίσσεται σε δύο φάσεις DNS σε συνδυασμό με ένα ελαφρύ payload HTML/JavaScript:

  1. Αρχική δέσμευση στην υποδομή του επιτιθέμενου. Το θύμα επισκέπτεται έναν ιστότοπο ελεγχόμενο από τον επιτιθέμενο. Η πρώτη αναζήτηση DNS επιλύεται στη δημόσια IP του επιτιθέμενου, επιτρέποντάς μας να εξυπηρετήσουμε ένα script που κάνει polling στο endpoint της Kluster.
  2. Επαναδέσμευση στο localhost. Αφού φορτωθεί η σελίδα, ο διακομιστής DNS του επιτιθέμενου απαντά στα επόμενα ερωτήματα για τον ίδιο host με 127.0.0.1. Τα προγράμματα περιήγησης επαναχρησιμοποιούν το αποθηκευμένο στην cache όνομα, οπότε οι επακόλουθες κλήσεις fetch μεταπηδούν σιωπηλά στη διεπαφή loopback του θύματος διατηρώντας παράλληλα την αρχική συμβολοσειρά origin.
  3. Οδήγηση του API verify. Επειδή το verify-mcp επιτρέπει αιτήματα HTTP από οποιοδήποτε origin και δεν επικυρώνει τις κεφαλίδες Host ή Origin, το script μας επιτυχώς έκανε POST εργασίες στο /stream, ενεργοποιώντας εκτελέσεις επαλήθευσης που καταναλώνουν πιστώσεις.

Αυτό το μοτίβο δεν είναι μοναδικό για την Kluster, αλλά ο συνδυασμός μεταφοράς HTTP και της έλλειψης επικύρωσης κεφαλίδων κατέστησε την εκμετάλλευση τετριμμένη.

Αντίκτυπος

  • Κατάχρηση υπηρεσίας: Απομακρυσμένοι δράστες μπορούν να καταναλώσουν πιστώσεις επαλήθευσης της Kluster ή να κατακλύσουν το API, προκαλώντας οικονομική ζημία ή περιορισμό ρυθμού (rate limiting) για τους νόμιμους χρήστες.

Συστάσεις

Για την Kluster AI

  • Επικυρώστε αυστηρά τις κεφαλίδες Host και Origin, απορρίπτοντας αιτήματα που δεν ταιριάζουν με μια ρητή λίστα επιτρεπόμενων (localhost, 127.0.0.1).
  • Εισαγάγετε έλεγχο ταυτότητας ή API tokens ακόμη και για τοπικές συνεδρίες, ώστε να διασφαλίσετε ότι μόνο έμπιστοι καλούντες μπορούν να επικαλούνται ενέργειες που καταναλώνουν πιστώσεις.

Για τους operators και χρήστες MCP

  • Θεωρήστε ότι οι υπηρεσίες localhost είναι προσβάσιμες μέσω του προγράμματος περιήγησης παρουσία DNS rebinding· παρακολουθείτε τα logs για μη αναμενόμενα ονόματα origin.
  • Προτιμήστε HTTPS (με σωστά πιστοποιητικά) και ρητή επικύρωση κεφαλίδων για οποιοδήποτε εργαλείο εκτίθεται πέρα από τη διεπαφή loopback.
  • Εκπαιδεύστε τους προγραμματιστές να κλείνουν τους τοπικούς agents όταν περιηγούνται σε μη έμπιστους ιστότοπους, ή χρησιμοποιήστε τμηματοποίηση δικτύου για να απομονώσετε τις υπηρεσίες agent από το προεπιλεγμένο προφίλ του προγράμματος περιήγησης.

Καταληκτικές σκέψεις

Το DNS rebinding συνεχίζει να θολώνει το όριο μεταξύ «τοπικού» και «απομακρυσμένου» για τα εργαλεία MCP.

Θωρακίζοντας τα κανάλια μεταφοράς, επικυρώνοντας τα μεταδεδομένα των αιτημάτων και απαιτώντας έλεγχο ταυτότητας, οι προμηθευτές πλατφορμών μπορούν να βοηθήσουν τους προγραμματιστές να είναι πιο ασφαλείς.

Χρονολόγιο

  • 2025-07-17: Υποβλήθηκε η αρχική αναφορά στην ασφάλεια της Kluster AI.
  • 2025-07-17: Η Kluster επιβεβαίωσε τη λήψη την ίδια ημέρα.
  • 2025-08-29: Στάλθηκε επακόλουθο ερώτημα στην Kluster AI ζητώντας την κατάσταση της αποκατάστασης.
  • 2025-10-16: Το τεχνικό δελτίο δημοσιεύθηκε στο mcpsec.dev.