Ένα proof-of-concept (PoC) exploit που ονομάζεται “mongobleed” για το CVE-2025-14847, μια κρίσιμη ευπάθεια διαρροής μνήμης χωρίς έλεγχο ταυτότητας στον χειρισμό αποσυμπίεσης zlib της MongoDB.
Το μεταγλωττισμένο από τον δημιουργό του Joe Desimone ως ένας τρόπος για την αφαίμαξη της ευαίσθητης μνήμης διακομιστή, το ελάττωμα επιτρέπει στους εισβολείς να εξάγουν απομακρυσμένα δεδομένα χωρίς αρχικοποίηση χωρίς διαπιστευτήρια, εκθέτοντας ενδεχομένως εσωτερικά αρχεία καταγραφής, στατιστικά συστήματος και πολλά άλλα.
Η ευπάθεια προέρχεται από ένα ελάττωμα στην επεξεργασία συμπιεσμένων μηνυμάτων από το MongoDB. Οι επιτιθέμενοι στέλνουν ένα ειδικά διαμορφωμένο μήνυμα ισχυριζόμενοι ένα διογκωμένο «μη συμπιεσμένο μέγεθος». Το MongoDB εκχωρεί ένα μεγάλο buffer με βάση αυτόν τον ισχυρισμό, αλλά το zlib αποσυμπιέζει μόνο τα πραγματικά δεδομένα στην αρχή του buffer.
Είναι πολύ σημαντικό ότι ο διακομιστής αντιμετωπίζει ολόκληρο το buffer ως έγκυρο, με αποτέλεσμα η ανάλυση BSON να ερμηνεύει την μη αρχικοποιημένη μνήμη ως ονόματα πεδίων μέχρι να συναντήσει μηδενικά byte. Ανιχνεύοντας διαφορετικές μετατοπίσεις, οι εισβολείς μπορούν συστηματικά να διαρρέουν κομμάτια μνήμης.
«Η Mongobleed σαρώνει συστηματικά περιοχές μνήμης δημιουργώντας κακώς μορφοποιημένα έγγραφα BSON με πεδία διαφορετικού μήκους», εξήγησε η Desimone στο αποθετήριο GitHub. Κάθε ανιχνευτής αποκαλύπτει τμήματα όπως διαμορφώσεις MongoDB WiredTiger, στατιστικά /proc/meminfo, διαδρομές Docker, UUID σύνδεσης και IP πελάτη.
Οι εκδόσεις που επηρεάζονται εκτείνονται σε πολλούς κλάδους:
| Υποκατάστημα έκδοσης | Εύρος που επηρεάστηκε | Διορθώθηκε |
|---|---|---|
| 8.2.χ | 8.2.0 – 8.2.2 | 8.2.3 |
| 8.0.χ | 8.0.0 – 8.0.16 | 8.0.17 |
| 7.0.χ | 7.0.0 – 7.0.27 | 7.0.28 |
| 6.0.χ | 6.0.0 – 6.0.26 | 6.0.27 |
| 5.0.χ | 5.0.0 – 5.0.31 | 5.0.32 |
Το εργαλείο που βασίζεται σε Python είναι εύκολο στην ανάπτυξη. Μετατοπίσεις σαρώσεων βασικής χρήσης 20-8192: python3 mongobleed.py –host . Οι βαθύτερες σαρώσεις επεκτείνονται σε 50.000 μετατοπίσεις για πλουσιότερες διαρροές, απορρίπτοντας δεδομένα σε ένα δυαδικό αρχείο.
Το παράδειγμα εξόδου αποκαλύπτει μετρήσεις συστήματος όπως “MemAvailable: 8554792 kB” και στατιστικά στοιχεία δικτύου όπως “SyncookiesFailed EmbryonicRsts”.
Το Desimone συμπεριέλαβε μια ρύθμιση Docker Compose για τη δοκιμή ευάλωτων περιπτώσεων, υπογραμμίζοντας την ευκολία αναπαραγωγής. Τα δεδομένα που διέρρευσαν σε επιδείξεις ήταν συνολικά πάνω από 8.700 byte σε 42 τμήματα.
Το MongoDB επιδιορθώνει το ζήτημα σε δεσμεύσεις upstream, επικυρώνοντας αποσυμπιεσμένα μήκη πριν από την επεξεργασία buffer. Η OX Security αποκάλυψε πρώτα το ελάττωμα, προειδοποιώντας για κινδύνους διήθησης σε εγκαταστάσεις cloud και κοντέινερ.
Οργανισμοί που εκτελούν εκτεθειμένες παρουσίες MongoDB, συνηθισμένες σε εφαρμογές ιστού, αναλυτικά στοιχεία και στοίβες NoSQL, αντιμετωπίζουν επείγουσα πίεση ενημέρωσης κώδικα. Απενεργοποιήστε την πρόσβαση χωρίς έλεγχο ταυτότητας και την οθόνη για ανώμαλες σαρώσεις στη θύρα 27017.
Desimone, γνωστή στο X ως @dez_ _, απελευθερώθηκε το ρεπο για επίσπευση της ευαισθητοποίησης. Καθώς οι διαρροές μνήμης όπως αυτή πολλαπλασιάζονται, τονίζει τα σφάλματα αποσυμπίεσης ως ανερχόμενο φορέα στην ασφάλεια της βάσης δεδομένων.









