Το Exploit κυκλοφόρησε για ελάττωμα RCE στη δημοφιλή βιβλιοθήκη PDF του ReportLab
Related Posts
Ένας ερευνητής δημοσίευσε μια λειτουργική εκμετάλλευση για ένα ελάττωμα απομακρυσμένης εκτέλεσης κώδικα (RCE) που επηρεάζει το ReportLab Toolkit, μια δημοφιλή βιβλιοθήκη Python που χρησιμοποιείται από πολλά έργα για τη δημιουργία αρχείων PDF από είσοδο HTML.
Το proof-of-concept (PoC) εκμετάλλευση για το ελάττωμα, που παρακολουθήθηκε ως CVE-2023-33733, ήταν
δημοσιεύτηκε χθες στο GitHub
μαζί με μια εγγραφή που παρέχει τεχνικές λεπτομέρειες σχετικά με την ευπάθεια, αυξάνοντας έτσι την πιθανότητα εκμετάλλευσης στην άγρια φύση.
Το ReportLab Toolkit χρησιμοποιείται από πολλά έργα ως βιβλιοθήκη PDF και έχει περίπου
3,5 εκατομμύρια μηνιαίες λήψεις στο PyPI
(Ευρετήριο πακέτου Python).
Παράκαμψη παλιάς επιδιόρθωσης
Το πρόβλημα προέρχεται από τη δυνατότητα παράκαμψης περιορισμών sandbox στο «rl_safe_eval», ο ρόλος του οποίου είναι να αποτρέπει την εκτέλεση κακόβουλου κώδικα, οδηγώντας στην πρόσβαση του εισβολέα σε δυνητικά επικίνδυνες ενσωματωμένες λειτουργίες της Python.
Η συνάρτηση ‘rl_safe_eval’ εισήχθη ως μέτρο για την αποτροπή παρόμοιου ζητήματος απομακρυσμένης εκτέλεσης κώδικα που ανακαλύφθηκε το 2019. εξ ου και ο ερευνητής εστίασε στην παράκαμψή του.
Το παρουσιαζόμενο PoC ανακτά την ενσωματωμένη συνάρτηση “type” που βοηθά στη δημιουργία μιας νέας κλάσης με το όνομα “Word”, η οποία κληρονομείται από την κλάση “str”, η οποία μπορεί να παρακάμψει τους ελέγχους ασφαλείας και να δώσει πρόσβαση σε ευαίσθητα χαρακτηριστικά όπως “code”.
Στη συνέχεια, ο «τύπος» καλείται να ξεπεράσει τους ασφαλείς αξιολογικούς ελέγχους σχετικά με τους περιορισμούς του πλήθους επιχειρημάτων, επιτρέποντας στον εισβολέα να καταχραστεί την αρχική, ενσωματωμένη λειτουργία «τύπου» για τη δημιουργία νέων κλάσεων και αντικειμένων.
Αυτό οδηγεί στην κατασκευή μιας κακόβουλης συνάρτησης από τον bytecode μιας μεταγλωττισμένης, η οποία, όταν εκτελεστεί, μπορεί να εκτελέσει μια αυθαίρετη ενέργεια. Στο παράδειγμα του ερευνητή, καλεί μια εντολή OS για να δημιουργήσει ένα αρχείο που ονομάζεται ‘exploited’ στον κατάλογο “/tmp/”.
Ο ερευνητής σημειώνει ότι ολόκληρος ο κώδικας εκμετάλλευσης πρέπει να εκτελείται με το eval σε μία μόνο έκφραση, επομένως χρησιμοποιεί το τέχνασμα «κατανόηση λίστας» για να τον δομήσει ως τέτοιο.

Exploit για CVE-2023-33733
(GitHub)
Ο ερευνητής του Cure53, Elyas Damej, προειδοποιεί στην έγγραφή του ότι η εκμετάλλευση του CVE-2023-33733 είναι τόσο απλή όσο η ενσωμάτωση κακόβουλου κώδικα σε ένα αρχείο HTML που θα μετατραπεί σε PDF σε λογισμικό που χρησιμοποιεί τη βιβλιοθήκη ReportLab.

Παράδειγμα κακόβουλου HTML που ενεργοποιεί το ελάττωμα στο xhtml2pdf
(GitHub)
Η ευρεία χρήση της βιβλιοθήκης και η δημόσια εκμετάλλευση θέτει πολλούς χρήστες σε κίνδυνο. Οι προμηθευτές λογισμικού που χρησιμοποιούν τη βιβλιοθήκη μπορούν να αντιμετωπίσουν τον κίνδυνο της αλυσίδας εφοδιασμού που προκύπτει, εφαρμόζοντας τη διαθέσιμη ενημέρωση ασφαλείας.
Ο Damej είπε στο BleepingComputer ότι το ζήτημα αναφέρθηκε στους προγραμματιστές του ReportLab μόλις το ανακάλυψαν και ήρθε μια επιδιόρθωση
έκδοση 3.6.13
κυκλοφόρησε στις 27 Απριλίου 2023.
Ο ερευνητής διευκρίνισε ότι η ευπάθεια επηρεάζει όλες τις προηγούμενες εκδόσεις της βιβλιοθήκης.

