Hacking
Κρίσιμες ευπάθειες στο RabbitMQ: πώς ένα ξεχασμένο endpoint δίνει πλήρη έλεγχο
Ερευνητές εντόπισαν στο RabbitMQ ένα ξεχασμένο endpoint που αποκάλυπτε OAuth client secrets και μια άλλη ασυμφωνία εξουσιοδότησης που επέτρεπε reconnaissance σε tenants. Η άμεση αναβάθμιση, rotation μυστικών και network hardening είναι απαραίτητα.
Δύο σοβαρές ευπάθειες που εντοπίστηκαν στο RabbitMQ μπορούν να επιτρέψουν σε επιτιθέμενους να αποκτήσουν πλήρη έλεγχο ενός broker ή να χαρτογραφήσουν σιωπηλά ευαίσθητες ουρές και ανταλλαγές σε κοινόχρηστα περιβάλλοντα. Οι ελλείψεις ανακαλύφθηκαν από το σύστημα VulnHunter της Miggo Security και υπήρχαν από την έκδοση 3.13.0 που κυκλοφόρησε στις αρχές του 2024. Μετά από συντονισμένη αποκάλυψη, οι διορθώσεις είναι πλέον διαθέσιμες στις πρόσφατες εκδόσεις του RabbitMQ.
Το εύρος και η φύση των σφαλμάτων δείχνουν γιατί ακόμα και ώριμα projects με μεγάλη εξάπλωση σε containers παραμένουν ευάλωτα σε «ασυνεπείς» ελέγχους πρόσβασης — σφάλματα που προκύπτουν όταν μια λειτουργία αποκλίνει από το υπόλοιπο πρότυπο εξουσιοδότησης του κώδικα.
Τι ακριβώς βρήκαν οι ερευνητές
Η πιο σοβαρή ευπάθεια (CVSS v4.0 8.7) βρισκόταν σε ένα απαρχαιωμένο management API endpoint, το GET /api/auth. Αυτό το endpoint επέστρεφε την διαμόρφωση OAuth2 του broker σε οποιονδήποτε αιτούταν χωρίς αυθεντικοποίηση. Όταν οι χειριστές είχαν ρυθμίσει το management.oauth_client_secret για παρόχους ταυτότητας όπως Auth0, Entra ID, Keycloak ή UAA, το μυστικό του client συμπεριλαμβανόταν στο plaintext response.
Το ριζικό τεχνικό πρόβλημα ήταν στον κώδικα του rabbit_mgmt_wm_auth.erl, όπου η callback συνάρτηση is_authorized/2 ήταν hard-coded να επιστρέφει true. Με απλά λόγια, το endpoint παράκαμπτε εντελώς την έλεγξη ταυτότητας.
Πρακτική επίθεση: από μηδέν σε πλήρη έλεγχο
Η επίθεση είναι ανησυχητικά απλή. Ο επιτιθέμενος χρειάζεται μόνο δικτυακή πρόσβαση στην πόρτα διαχείρισης 15672. Με ένα αίτημα στο GET /api/auth μπορεί να αποκαλύψει το OAuth client secret. Στη συνέχεια μπορεί να ανταλλάξει αυτό το μυστικό με τον πάροχο ταυτότητας για ένα διαχειριστικό token, το οποίο του δίνει πλήρη έλεγχο σε μηνύματα, ουρές, χρήστες και ρυθμίσεις του broker.
Σε παραγωγικά περιβάλλοντα όπου το RabbitMQ λειτουργεί ως κεντρικό message bus — π.χ. για ειδοποιήσεις, επεξεργασία συναλλαγών ή τηλεμετρία IoT — ένα τέτοιο token σημαίνει πρακτικά άμεση και πλήρη πρόσβαση στα επιχειρησιακά δεδομένα και στις διαδικασίες.
Η δεύτερη ευπάθεια: πληροφορίες για ουρές χωρίς δικαιώματα
Η δεύτερη ευπάθεια (CVSS v4.0 5.3, CWE-862) επέτρεπε σε οποιονδήποτε authenticated χρήστη, ακόμη και χωρίς δικαιώματα, να καταμετρεί ουρές και exchanges και να διαβάζει στατιστικά τους. Το σφάλμα εντοπίστηκε στο rabbit_channel.erl, όπου η λειτουργία «passive declare» — που ελέγχει την ύπαρξη μιας ουράς — παρέλειπε την επικύρωση δικαιωμάτων.
Αντίθετα, λειτουργίες όπως queue.delete ή basic.publish ακολουθούν τους σωστούς ελέγχους. Αυτή η ασυμφωνία επιτρέπει σε λογαριασμούς με ελάχιστα προνόμια να χαρτογραφήσουν ονόματα, όγκους μηνυμάτων και μοτίβα χρήσης σε κοινόχρηστα virtual hosts.
Γιατί αυτό ανησυχεί ιδιαίτερα σε multi-tenant περιβάλλοντα
Σε εγκαταστάσεις όπου πολλοί tenants μοιράζονται ένα virtual host για ευκολία ή οικονομία, η δυνατότητα reconnaissance από λογαριασμούς χαμηλού επιπέδου διευκολύνει καρτέλες επίθεσης: αναγνώριση naming conventions, εκτίμηση φόρτου εργασίας, και εξαγωγή μεταδεδομένων που μπορούν να χρησιμοποιηθούν για phishing, lateral movement ή στόχευση κρίσιμων ροών μηνυμάτων.
Αντίστοιχες ασύμμετρες αδυναμίες backend εξουσιοδότησης έχουν οδηγήσει στο παρελθόν σε μαζικές παραβιάσεις, ειδικά όταν συνδυάζονται με άλλες αδυναμίες όπως compromized credentials ή deserialization bugs.
Διορθώσεις και διαθεσιμότητα patch
Οι ευπάθειες διορθώθηκαν στις εκδόσεις 4.3.0, 4.2.6, 4.1.11, 4.0.20 και 3.13.15 του RabbitMQ. Η Miggo συνιστά άμεση ενημέρωση σε μια από τις υποστηριζόμενες upstream εκδόσεις. Η patch για το CVE-2026-57219 κλείνει την πρόσβαση στο ευάλωτο endpoint, αλλά δεν αναιρεί μυστικά που έχουν ήδη διαρρεύσει — για αυτό απαιτείται rotation των credentials.
Για το CVE-2026-57221 δεν υπάρχει προσωρινή ρύθμιση που να αντικαθιστά πλήρως το patch: το μόνο μόνιμο μέτρο είναι η αναβάθμιση.
Άμεσα και πρακτικά μέτρα για την άμεση μείωση του ρίσκου
Η άμεση εφαρμογή των παρακάτω βημάτων περιορίζει σημαντικά το παράθυρο εκμετάλλευσης και τη ζημιά αν έχει ήδη υπάρξει διαρροή:
- Apply patches: ενημερώστε το RabbitMQ στις διορθωμένες εκδόσεις το συντομότερο δυνατό.
- Credentials rotation: πραγματοποιήστε rotation όλων των OAuth client secrets μέσω του IdP σας, αφού ένα μυστικό που έχει ήδη διαρρεύσει παραμένει έγκυρο.
- Network hardening: απομονώστε την management port 15672 από μη αξιόπιστα δίκτυα, χρησιμοποιώντας VPN, firewall ή private subnets.
- Tenant isolation: χωρίστε tenants σε ξεχωριστά vhosts και αποφύγετε το shared vhost ανάμεσα σε εμπιστευτικές μονάδες.
- Image audits: ελέγξτε pinned container images και Helm charts — πολλά clusters συνεχίζουν να τρέχουν ευάλωτες εκδόσεις λόγω παλιών εικόνων.
Επιπλέον, για CVE-2026-57219 υπάρχει διαθέσιμη WAF rule που μπλοκάρει πρόσβαση στο ευάλωτο endpoint ως προσωρινό μέτρο. Για το CVE-2026-57221 δεν υπάρχει παρόμοιο workaround.
Πώς να ενισχύσετε την άμυνα μακροπρόθεσμα
Η προστασία των message topologies απαιτεί συνεπή στρατηγική ασφάλειας και παρακολούθησης. Εκτός από την παραδοσιακή εφαρμογή patch και το rotation μυστικών, οι ομάδες ασφαλείας πρέπει να ενσωματώσουν:
- Συνεχή API security testing, συμπεριλαμβανομένων fuzzing και authorization checks, που να περιλαμβάνουν και deprecated endpoints.
- Λογική least privilege και role-based access control (RBAC) για κάθε κανάλι και client, όχι μόνο σε επίπεδο χρήστη αλλά και σε επίπεδο εφαρμογής.
- Διαρκή logging και alerting για ασυνήθιστες ανταλλαγές tokens ή αυξήσεις στη χρήση της management API.
- Αυτοματοποιημένα audits εικόνων και dependency scanning σε CI/CD pipeline ώστε να μην φτάσουν παλιές εκδόσεις στο production.
Η επένδυση σε παραπάνω επίπεδα άμυνας μειώνει τις πιθανότητες ότι μια μικρή “ασυμφωνία” στον κώδικα θα εξελιχθεί σε πλήρη παραβίαση.
Γιατί έχει σημασία
Η περίπτωση των ευπαθειών στο RabbitMQ διδάσκει δύο κρίσιμα μαθήματα. Πρώτον, σε ένα οικοσύστημα μικροϋπηρεσιών και containers, ακόμη και ένα «παραμελημένο» ή ξεχασμένο endpoint μπορεί να προσφέρει γρήγορη οδό επίθεσης προς κρίσιμα δεδομένα. Δεύτερον, οι ασυνεπείς έλεγχοι πρόσβασης — όπου ένα μονοπάτι παρακάμπτει τους ίδιους ελέγχους που τηρούνται αλλού — είναι ιδιαίτερα επικίνδυνοι και δύσκολα ανιχνεύσιμοι χωρίς αυτοματοποιημένη, side-by-side ανάλυση του κώδικα.
Για τους χρήστες και τις επιχειρήσεις, το πρακτικό νόημα είναι σαφές: εφαρμόστε τις διορθώσεις, περιστρέψτε μυστικά, απομονώστε την management διεπαφή και ενσωματώστε κανόνες ασφαλείας στον κύκλο ζωής της εφαρμογής. Χωρίς αυτά, το message broker που θεμελιώνει πολλές σύγχρονες αρχιτεκτονικές θα παραμένει ένα ελκυστικό σημείο επίθεσης για κακόβουλους παράγοντες.