Υπό ορισμένες προϋποθέσεις, οι εισβολείς μπορούν να αλυσιδώσουν ένα σύνολο ευπάθειας σε πολλαπλά στοιχεία του συστήματος εκτύπωσης ανοιχτού κώδικα CUPS για να εκτελέσουν αυθαίρετο κώδικα εξ αποστάσεως σε ευάλωτα μηχανήματα.
Παρακολούθηση ως CVE-2024-47076 (libcupsfilters), CVE-2024-47175 (libppd), CVE-2024-47176 (περιήγηση σε cups) και CVE-2024-47177 (κύπελλα-φίλτρα) και ανακαλύφθηκε από τον Simone Margaritelliαυτά τα ελαττώματα ασφαλείας δεν επηρεάζουν τα συστήματα στην προεπιλεγμένη τους διαμόρφωση.
Το CUPS (συντομογραφία του Common UNIX Printing System) είναι το πιο ευρέως χρησιμοποιούμενο σύστημα εκτύπωσης σε συστήματα Linux και είναι επίσης υποστηρίζεται γενικά σε συσκευές που εκτελούν λειτουργικά συστήματα παρόμοια με το Unix, όπως το FreeBSD, το NetBSD και το OpenBSD και τα παράγωγά τους.
Ένα από τα στοιχεία του είναι ο δαίμονας που περιηγείται σε cups, ο οποίος αναζητά στο τοπικό δίκτυο διαφημιζόμενο δίκτυο ή κοινόχρηστους εκτυπωτές και τους καθιστά διαθέσιμους για εκτύπωση στο μηχάνημα. Αυτό είναι παρόμοιο με τον τρόπο με τον οποίο τα Windows και τα Mac μπορούν να αναζητήσουν στο δίκτυο εκτυπωτές απομακρυσμένου δικτύου για εκτύπωση.
Ο Margaritelli ανακάλυψε ότι εάν είναι ενεργοποιημένος ο δαίμονας με περιήγηση σε cups, ο οποίος δεν είναι στα περισσότερα συστήματα, θα ακούει στη θύρα UDP 631. Επίσης, από προεπιλογή, θα επιτρέπει απομακρυσμένες συνδέσεις από οποιαδήποτε συσκευή στο δίκτυο για τη δημιουργία νέου εκτυπωτή.
Ανακάλυψε ότι θα μπορούσε να δημιουργήσει έναν κακόβουλο εκτυπωτή PostScript Printer Description (PPD) που θα μπορούσε να διαφημιστεί με μη αυτόματο τρόπο σε μια υπηρεσία εκτεθειμένης περιήγησης σε cups που εκτελείται στη θύρα UDP 631.
Αυτό αναγκάζει το απομακρυσμένο μηχάνημα να εγκαταστήσει αυτόματα τον κακόβουλο εκτυπωτή και να τον κάνει διαθέσιμο για εκτύπωση. Εάν ο χρήστης σε αυτόν τον εκτεθειμένο διακομιστή εκτυπώσει στον νέο εκτυπωτή, η κακόβουλη εντολή στο PPD θα εκτελεστεί τοπικά στον υπολογιστή.
Η εντολή που πρέπει να εκτελεστεί κατά την εκτύπωση προστίθεται μέσω α Foomatic-rip φίλτροτο οποίο εκτελεί εντολές σε μια συσκευή έτσι ώστε μια εργασία εκτύπωσης να αποδίδεται σωστά.
Περιορισμένη παγκόσμια επίδραση
Αν και πρόκειται για μια απομακρυσμένη αλυσίδα εκτέλεσης κώδικα, θα πρέπει να σημειωθεί από την αρχή ότι οι εισβολείς πρέπει να ξεπεράσουν κάποια εμπόδια για να εκμεταλλευτούν τα τρωτά σημεία και να επιτύχουν στην πραγματικότητα την απομακρυσμένη εκτέλεση κώδικα.
Το πρώτο είναι ότι τα στοχευμένα συστήματα πρέπει να έχουν ενεργοποιημένο τον δαίμονα περιήγησης σε cups, ο οποίος συνήθως δεν είναι ενεργοποιημένος από προεπιλογή, για να εκθέσουν τις θύρες UDP τους σε ένα δίκτυο. Στη συνέχεια, ο εισβολέας πρέπει να ξεγελάσει έναν χρήστη για να εκτυπώσει από έναν κακόβουλο διακομιστή εκτυπωτή στο τοπικό του δίκτυο που εμφανίζεται ξαφνικά στον υπολογιστή του.
“Είναι μια αλυσίδα σφαλμάτων που βασίζονται στην πλαστογράφηση ενός εκτυπωτή στο τοπικό σας δίκτυο που προστίθεται αυτόματα μέσω εντοπισμού δικτύου εάν είναι καθόλου ενεργοποιημένο – συνήθως όχι στην προεπιλεγμένη του διαμόρφωση. Στη συνέχεια, μια μη επαληθευμένη μεταβλητή που χρησιμοποιείται για την εκμετάλλευση άλλων τρωτών σημείων στο σύστημα CUPS για την εκτέλεση κώδικα, αλλά μόνο όταν ενεργοποιείται μια εργασία εκτύπωσης.” είπε Ilkka Turunen, Field CTO στη Sonatype.
“Καλά νέα λοιπόν – είναι ένα RCE αλλά με αρκετούς μετριασμούς, συμπεριλαμβανομένου του γεγονότος ότι ο εισβολέας πρέπει να μπορεί να συνδεθεί σε έναν υπολογιστή μέσω UDP το οποίο είναι ευρέως απενεργοποιημένο κατά την είσοδο στο δίκτυο και η υπηρεσία συνήθως δεν είναι ενεργοποιημένη από προεπιλογή. Φαίνεται ότι το Ο πραγματικός αντίκτυπος είναι χαμηλός».
Για αυτούς τους λόγους, Η Red Hat έχει αξιολογήσει τα ελαττώματα καθώς έχει «Σημαντική» σοβαρότητα αντί για κρίσιμη.
Ενώ οι δοκιμές του BleepingComputer έδειξαν ότι οι περισσότεροι από τους διακομιστές μας Linux δεν είχαν την υπηρεσία ενεργοποιημένη από προεπιλογή, ένα από τα VM του Ubuntu το έκανε. Άλλοι έχουν σημειώθηκε επίσης στο Twitter ότι τα cups-browsed ήταν ενεργοποιημένο από προεπιλογή στις συσκευές Linux τους.
Δεν υπάρχουν μπαλώματα, αλλά υπάρχουν διαθέσιμα μέτρα μετριασμού
Ενώ οι ενημερώσεις κώδικα βρίσκονται ακόμη σε εξέλιξη, η Red Hat μοιράστηκε μέτρα μετριασμού που απαιτούν από τους διαχειριστές να σταματήσουν την εκτέλεση της υπηρεσίας που περιηγείται σε cups και να εμποδίσουν την εκκίνησή της κατά την επανεκκίνηση χρησιμοποιώντας τις ακόλουθες εντολές για να σπάσουν την αλυσίδα εκμετάλλευσης:
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Οι χρήστες του Red Hat μπορούν επίσης να χρησιμοποιήσουν την ακόλουθη εντολή για να μάθουν εάν το cups-browsed εκτελείται στα συστήματά τους:
sudo systemctl status cups-browsed
Εάν το αποτέλεσμα εμφανίσει “Ενεργό: ανενεργό (νεκρό)”, τότε η αλυσίδα εκμετάλλευσης διακόπτεται και το σύστημα δεν είναι ευάλωτο. Εάν το αποτέλεσμα δείχνει “εκτελείται” ή “ενεργοποιημένο” και η οδηγία “BrowseRemoteProtocols” περιέχει την τιμή “cups” στο αρχείο διαμόρφωσης /etc/cups/cups-browsed.conf, τότε το σύστημα είναι ευάλωτο.
VIA: bleepingcomputer.com